Comments (3)
Fixes in 5cc622b and 79b9ff9 .
from faad2.
Which version did you use for your tests? I get the following result with id0
and the latest state in GIT (and no segmentation fault):
[...]
invalid atom size 0 @3f497
can't read atom name @3f524
id0 file info:
LC AAC 15.855 secs, 2 ch, 44100 Hz
can't read frame data(frame 0@0x0)
Decoding id0 took: 0.00 sec. 0.00x real-time.
from faad2.
Current DEV head of git.
I just recompiled the faad frontend and library and re-tested it.
It still crashes.
- Environment
$ lsb_release -r
Release: 18.04
$ uname -a
Linux jjung-900X5L 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ ldd faad
linux-vdso.so.1 (0x00007ffd8d1d6000)
libfaad.so.2 => /lib/x86_64-linux-gnu/libfaad.so.2 (0x00007f20c8dff000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f20c8a0e000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f20c8670000)
/lib64/ld-linux-x86-64.so.2 (0x00007f20c924b000)
- GDB:
Program received signal SIGSEGV, Segmentation fault.
[----------------------------------registers-----------------------------------]
RAX: 0x0
RBX: 0x5555557602a0 --> 0xfbad2488
RCX: 0x123
RDX: 0xa3
RSI: 0x555555760570 --> 0xb72c4ac0ef7e1b1e
RDI: 0x20 (' ')
RBP: 0x1000
RSP: 0x7fffffffda98 --> 0x7ffff782f7db (<__GI__IO_file_xsgetn+587>: add QWORD PTR [rbx+0x8],r15)
RIP: 0x7ffff7932ca2 (<__memmove_avx_unaligned_erms+466>: )
R8 : 0xffffffffffffffe0
R9 : 0x0
R10: 0x555555760380 --> 0x100000001
R11: 0x0
R12: 0x0
R13: 0x143
R14: 0xd68 ('h\r')
R15: 0x143
EFLAGS: 0x10206 (carry PARITY adjust zero sign trap INTERRUPT direction overflow)
[-------------------------------------code-------------------------------------]
0x7ffff7932c8f <__memmove_avx_unaligned_erms+447>:
vmovdqu ymm3,YMMWORD PTR [rsi+0x60]
0x7ffff7932c94 <__memmove_avx_unaligned_erms+452>: add rsi,0x80
0x7ffff7932c9b <__memmove_avx_unaligned_erms+459>: sub rdx,0x80
=> 0x7ffff7932ca2 <__memmove_avx_unaligned_erms+466>:
vmovdqa YMMWORD PTR [rdi],ymm0
0x7ffff7932ca6 <__memmove_avx_unaligned_erms+470>:
vmovdqa YMMWORD PTR [rdi+0x20],ymm1
0x7ffff7932cab <__memmove_avx_unaligned_erms+475>:
vmovdqa YMMWORD PTR [rdi+0x40],ymm2
0x7ffff7932cb0 <__memmove_avx_unaligned_erms+480>:
vmovdqa YMMWORD PTR [rdi+0x60],ymm3
0x7ffff7932cb5 <__memmove_avx_unaligned_erms+485>: add rdi,0x80
[------------------------------------stack-------------------------------------]
0000| 0x7fffffffda98 --> 0x7ffff782f7db (<__GI__IO_file_xsgetn+587>: add QWORD PTR [rbx+0x8],r15)
0008| 0x7fffffffdaa0 --> 0x402fb5e7c0000000
0016| 0x7fffffffdaa8 --> 0x0
0024| 0x7fffffffdab0 --> 0x417daf3e
0032| 0x7fffffffdab8 --> 0x143
0040| 0x7fffffffdac0 --> 0x5555557602a0 --> 0xfbad2488
0048| 0x7fffffffdac8 --> 0x143
0056| 0x7fffffffdad0 --> 0x1
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
Stopped reason: SIGSEGV
__memmove_avx_unaligned_erms ()
at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:403
403 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory.
gdb-peda$ bt
#0 __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:403
#1 0x00007ffff782f7db in __GI__IO_file_xsgetn (fp=0x5555557602a0, data=<optimized out>, n=0x143) at fileops.c:1318
#2 0x00007ffff78233c1 in __GI__IO_fread (buf=<optimized out>, size=size@entry=0x1, count=0x143, fp=0x5555557602a0)
at iofread.c:38
#3 0x0000555555558222 in fread (__stream=<optimized out>, __n=<optimized out>, __size=0x1, __ptr=<optimized out>)
at /usr/include/x86_64-linux-gnu/bits/stdio2.h:294
#4 mp4read_frame () at mp4read.c:925
#5 0x000055555555b509 in decodeMP4file (seek_to=<optimized out>, song_length=<synthetic pointer>, adts_out=0x0,
infoOnly=0x0, noGapless=0x0, downMatrix=<optimized out>, fileType=0x1, outputFormat=0x1, to_stdout=0x0,
adts_fn=0x0, sndfile=0x555555760280 "id0.wav", mp4file=0x555555760260 "id0") at main.c:913
#6 faad_main (argc=<optimized out>, argv=<optimized out>) at main.c:1317
#7 0x00007ffff77c5b97 in __libc_start_main (main=0x555555556ca0 <main>, argc=0x2, argv=0x7fffffffdf18,
init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdf08)
at ../csu/libc-start.c:310
#8 0x0000555555556cda in _start ()
gdb-peda$
- Address sanitizer
./faad id2
*********** Ahead Software MPEG-4 AAC Decoder V2.9.1 ******************
Build: Apr 22 2020
Copyright 2002-2004: Ahead Software AG
http://www.audiocoding.com
bug tracking: https://sourceforge.net/p/faac/bugs/
Floating point version
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License.
**************************************************************************
**** MP4 header ****
Brand: isom(version 512)
Compatible brands: isomiso2mp41
*track media type: 'soun': OK
==3382==WARNING: AddressSanitizer failed to allocate 0xffffffffe50001e6 bytes
==3382==AddressSanitizer's allocator is terminating the process instead of returning 0
==3382==If you don't like this behavior set allocator_may_return_null=1
==3382==AddressSanitizer CHECK failed: /build/llvm-toolchain-6.0-QjOn7h/llvm-toolchain-6.0-6.0/projects/compiler-rt/l
ib/sanitizer_common/sanitizer_allocator.cc:225 "((0)) != (0)" (0x0, 0x0)
#0 0x4e34d5 (/data/vlc/faad2/frontend/.libs/faad+0x4e34d5)
#1 0x500d85 (/data/vlc/faad2/frontend/.libs/faad+0x500d85)
#2 0x4e98c6 (/data/vlc/faad2/frontend/.libs/faad+0x4e98c6)
#3 0x4e9906 (/data/vlc/faad2/frontend/.libs/faad+0x4e9906)
#4 0x425486 (/data/vlc/faad2/frontend/.libs/faad+0x425486)
#5 0x4da35b (/data/vlc/faad2/frontend/.libs/faad+0x4da35b)
#6 0x512ea5 (/data/vlc/faad2/frontend/.libs/faad+0x512ea5)
#7 0x524806 (/data/vlc/faad2/frontend/.libs/faad+0x524806)
#8 0x523001 (/data/vlc/faad2/frontend/.libs/faad+0x523001)
#9 0x521b61 (/data/vlc/faad2/frontend/.libs/faad+0x521b61)
#10 0x7fe81f2e8b96 (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
#11 0x41a4c9 (/data/vlc/faad2/frontend/.libs/faad+0x41a4c9)
from faad2.
Related Issues (20)
- Perpare for the next release HOT 27
- Fff
- F HOT 1
- File decoding fails
- libfaad2.dll mingw HOT 6
- Build failure with -Werror=strict-aliasing: ic_predict.c:58:16: error: dereferencing type-punned pointer will break strict-aliasing rules HOT 3
- XMMS plugin (xmms-mp4) HOT 3
- A heap-buffer-overflow vulnerability found in mp4read.c:449:63 HOT 1
- mp4read.c::u32in HOT 1
- A SEGV vulnerability found in faad2 HOT 4
- ADTS aac is not recognized HOT 2
- CMake script does not build dynamic libraries HOT 1
- man page not installed
- error: conflicting types for 'lrintf' HOT 2
- Different library versions in cmake and autotools builds HOT 6
- Builds on Debian i386 fail despite applying commit linked in #188 HOT 1
- Values begin, end variables in pns.c may not be correct in the case of short window sequences
- Incorrect table boundaries checks in huffmanc.c HOT 5
- TNS_MAX_ORDER is object type and short/long window dependent HOT 3
- TODO: fix a bunch of "warning C4711: function selected for automatic inline expansion"
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from faad2.