-
Max Kellermann authored
Many years ago, FAAD had a serious ABI bug: the NeAACDecInit() prototype in its header declared the "samplerate" parameter to be "unsigned long *", but internally, the function assumed it was "uint32_t *" instead. On 32 bit machines, that was no difference, but on 64 bit, this left one portion of the return value uninitialized; and worse, on big-endian, the wrong word was filled. This bug had to be worked around in MPD (commit 9c4e97a6). A few months later, the bug was fixed in the FAAD CVS in commit 1.117 on file libfaad/decoder.c; the commit message was: "Use public headers internally to prevent duplicate declarations" The commit message was too brief at best; the problem was not duplicate declarations, but a prototype mismatch. No mention of the bug fix in the ChangeLog. The MPD project never learned about this bug fix, and so MPD would always pass a "uin32_t *" dressed up as a "unsigned long *". Nearly 6 years later, it's about time to fix this second ABI problem. Let's kill the workaround!
bc5a5357
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
ax_append_compile_flags.m4 | Loading commit data... | |
ax_append_flag.m4 | ||
ax_append_link_flags.m4 | ||
ax_boost_base.m4 | ||
ax_check_compile_flag.m4 | ||
ax_check_link_flag.m4 | ||
ax_cxx_compile_stdcxx_0x.m4 | ||
ax_pthread.m4 | ||
ax_require_defined.m4 | ||
faad.m4 | ||
libwrap.m4 | ||
mpd_auto.m4 | ||
mpd_depends.m4 | ||
mpd_func.m4 | ||
pkg.m4 | ||
pretty_print.m4 | ||
ucred.m4 |