[Flac-dev] Serious bug in FLAC

Nick Lamb
Fri, 10 Sep 2004 16:45:32 -0000

(I am not on this list, please CC me manually if necessary)

On Fri, Mar 15, 2002 at 11:47:15PM -0500, Asheesh Laroia
wrote:
> Are you sure it's not your compiler?  That's the first thing I
would
> check.  I know that RedHat is famous for including broken pre-releases of
> GCC in their distributions since 7.0.

FUD. Please stop that, it makes you look unprofessional. Until you can
point at a line of assembly that is plain wrong it is usually
appropriate to assume that the compiler is working.

> I'd try recompiling with GCC 3 or GCC 2.95 (available as
"kgcc").

No. Rather than trying voodoo magic first, let's find the bug...

In metadata_callback() in encode.c you should not be examining the
variable encoder_wrapper->use_ogg unless you have compiled in OGG
support (I have not). So this code block needs to be wrapped up
something like this...

#ifdef FLAC__HAS_OGG
        if(encoder_wrapper->use_ogg)
                return;
#endif

Every user who has flac installed but did not configure OGG support
will have a high (but not 100%) chance of creating flac files with
no seektable, and no MD5 checksum, and various other things wrong.

I recommend that in addition to fixing the original bug it is now too
late to avoid tweaking libFLAC so that ignores bogus seektables, and
probably someone needs to write a tool that either removes the
seektable altogether or corrects all the file metadata by scanning
the file <sigh>

Hopefully the people who replied so dismissively to my original bug
report will turn out to be useful and will help make these changes.
Otherwise IMNSHO they are dead weight.

Looking forward to flac 1.0.3

Nick.