[Flac-dev] test_metaflac fails in make check for flac 1.1.2 after --add-padding is performed

Josh Coalson xflac at yahoo.com
Thu Sep 7 14:53:54 PDT 2006


looks fine, I will definitely fix this for the next release.

Josh


--- Tom Goetze <tgoetze at yahoo.com> wrote:

> Josh,
> 
> I applied this patch and all the "make check" tests passed (but I do
> not have valgrind and I did not use --enable-exhaustive-tests during
> configure, so it isn't all the tests). Do you see anything suspicious
> about it?
> 
> --- flac-1.1.2.oldBuild/src/flac/decode.c       2005-01-24
> 20:13:46.000000000 -0800
> +++ flac-1.1.2/src/flac/decode.c        2006-09-06 23:36:26.000000000
> -0700
> @@ -497,7 +497,7 @@
>         }
> 
>         if((d->is_wave_out || d->is_aiff_out) && ((d->total_samples *
> d->channels * ((d->bps+7)/8)) & 1)) {
> -               if(flac__utils_fwrite("\000", 1, 1, d->fout) != 1) {
> +               if(d->fout && flac__utils_fwrite("\000", 1, 1,
> d->fout) != 1) {
>                         print_error_with_state(d, d->is_wave_out?
>                                 "ERROR writing pad byte to WAVE data
> chunk" :
>                                 "ERROR writing pad byte to AIFF SSND
> chunk"
> 
> Tom
> 
> Tom Goetze <tgoetze at yahoo.com> wrote: Date: Wed, 30 Aug 2006 00:00:56
> -0700 (PDT)
> From: Tom Goetze <tgoetze at yahoo.com>
> Subject: Re: [Flac-dev] test_metaflac fails in make check for flac
> 1.1.2 after --add-padding is performed
> To: Josh Coalson <xflac at yahoo.com>, flac-dev at xiph.org
> 
>  
> 
> Josh Coalson <xflac at yahoo.com> wrote:    --- Tom Goetze wrote:
> > doing "make check" on flac-1.1.2, I get a segmentation fault 
> > 
> > ././test_metaflac.sh: line 51: 17370 Segmentation fault flac
> > $*
> > 
> > My linux distribution is a linuxfromscratch 6.1.1
> > I built flac using blfs 6.1 directions:
> 
> > gcc version 3.4.3
> 
> hmm, two things would help. first change the first line of
> test_metaflac.sh to
> 
> #!/bin/sh -x
> 
> when you run the script you will see the exact invocation of flac
> before the crash. if you send be the FLAC file, that might help.
> also, if you can run the same command in gdb and get a backtrace
> that would be another clue.
> 
> Josh
> 
> 
>   Seems like fwrite doesn't like to write to null. However, it seems
> clear  from the code that using --test intentionally creates no
> outputfile for fwrite. 
>    
>   src/flac/main.c: 1730                        retval =
> flac__decode_wav(infilename, option_values.test_only? 0 :
> outfilename, option_values.analyze, option_values.aopts, options);
>    
>    
>   Details below:
>    
>   (gdb) run
> Starting program: /home/tom/sources/flac-1.1.2/src/flac/.libs/lt-flac
> --silent --test metaflac.flac
>   Breakpoint 1, DecoderSession_process (d=0xbffff530) at decode.c:500
> 500                     if(flac__utils_fwrite("\000", 1, 1, d->fout)
> != 1) {
> (gdb) print d
> $1 = (DecoderSession *) 0xbffff530
> (gdb) print d->fout
> $2 = (FILE *)  0x0
> (gdb) n
>   Program received signal SIGSEGV, Segmentation fault.
> 0xb7ea7044 in fwrite () from /lib/libc.so.6
> (gdb) bt
> #0  0xb7ea7044 in fwrite () from /lib/libc.so.6
> #1  0x0804ef09 in DecoderSession_process (d=0xbffff530) at
> decode.c:500
> #2  0x08051275 in flac__decode_wav (infilename=0x8341978
> "metaflac.flac", outfilename=0x0, analysis_mode=0, aopts=
>       {do_residual_text = 0, do_residual_gnuplot = 1}, options=
>           {common = {continue_through_decode_errors = 0,
> replaygain_synthesis_spec = {apply = 0, use_album_gain = 1, limiter =
> RGSS_LIMIT__HARD, noise_shaping = NOISE_SHAPING_LOW, preamp = 0},
> is_ogg = 0, use_first_serial_number = 1, serial_number = 0,
> skip_specification = {is_relative = 0, value_is_samples = 1, value =
> {seconds = 0, samples = 0}}, until_specification = {is_relative = 0,
> value_is_samples = 1, value = {seconds = 0, samples = 0}}, 
> has_cue_specification = 0, cue_specification = {has_start_point =
> -1207954168, has_end_point = 0, start_track = 3086395392, start_index
> = 40, end_track = 3086395392, end_index = 3086396416}}}) at
> decode.c:203
> #3  0x0805a507 in decode_file (infilename=0x8341978 "metaflac.flac")
> at main.c:1730
> #4  0x0805c241 in do_it () at main.c:486
> #5  0x0805ca7b in main (argc=4, argv=0xbffffa34) at main.c:284
>   
> And output of adding -x:
>    
>   options: -P 4096 -b 1152 -l 0 -q 0 -r 2,2 -V
> sh: Verify OK, wrote 554232 bytes, ratio=0.967
> + chmod +w metaflac.flac
> + check_flac
> + run_flac --silent --test metaflac.flac
> + '[' xno = xyes ']'
> + flac --silent --test metaflac.flac
> ././test_metaflac.sh: line 51:  7636 Segmentation fault      flac $*
> + die 'ERROR in metaflac.flac'
> + echo ERROR in metaflac.flac
> ERROR in metaflac.flac
> + exit 1
> FAIL: ./test_metaflac.sh
>     
>   Would it change functionality to add another condition about
> non-null outputfile to the flac__decode_wav routine on decode.c:500?
>    
>   Tom
>         
> 
> ---------------------------------
> Want to be your own boss? Learn how on  Yahoo! Small Business.  
> 
>  				
> ---------------------------------
> Want to be your own boss? Learn how on  Yahoo! Small Business. 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the Flac-dev mailing list