Xiph.org - flac.git/summary

Flac git repository

http://git.xiph.org/?p=flac.git;a=summary

Les articles publiés sur le site

  • cpu.c : Fix compiler warning on PowerPC

    11 septembre 2016, par Erik de Castro Lopo
    cpu.c: Fix compiler warning on PowerPC
    
    • [DH] src/libFLAC/cpu.c
  • Fix compiler warning from gcc-6.1.1

    8 septembre 2016, par Erik de Castro Lopo
    Fix compiler warning from gcc-6.1.1
    
    • [DH] src/flac/decode.c
    • [DH] src/libFLAC/cpu.c
  • stream_decoder : reset has_seek_table before read_metadata_seektable_()

    14 juillet 2016, par Max Kellermann
    stream_decoder: reset has_seek_table before read_metadata_seektable_()
    
    If a seek table has already been read successfully, then the
    has_seek_table flag is true.  Now imagine the file comes with another
    seek table, which doesn't make sense, but libFLAC accepts it happily.
    If reading this second seek table fails (for example allocation
    failure), read_metadata_seektable_() returns false, but the
    has_seek_table flag is still true.  If the calling application happens
    to ignore this failure, and at some point tries to seek, the process
    will crash due to NULL pointer dereference.  This would sure be an
    application bug that needs to be fixed, but libFLAC's internal state
    is inconsistent, so let's fix this up.
    
    Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
    
    • [DH] src/libFLAC/stream_decoder.c
  • stream_decoder : fix memory leak after seek table read error

    14 juillet 2016, par Max Kellermann
    stream_decoder: fix memory leak after seek table read error
    
    When read_metadata_seektable_() fails, the has_seek_table flag is
    never set to true, and thus free() is never called.
    
    Example valgrind output:
    
     11,185,464 bytes in 1 blocks are definitely lost in loss record 62 of 62
        at 0x4C2BC0F: malloc (vg_replace_malloc.c:299)
        by 0x4C2DE6F: realloc (vg_replace_malloc.c:785)
        by 0x40A7880: safe_realloc_ (alloc.h:159)
        by 0x40A7911: safe_realloc_mul_2op_ (alloc.h:205)
        by 0x40AB6B5: read_metadata_seektable_ (stream_decoder.c:1654)
        by 0x40AAB2D: read_metadata_ (stream_decoder.c:1422)
        by 0x40A9C79: FLAC__stream_decoder_process_until_end_of_metadata (stream_decoder.c:1055)
    
    It is easy to craft a FLAC file which leaks megabytes of memory on
    every attempt to open the file.
    
    This patch fixes the problem by removing checks which are unnecessary
    (and harmful).  Checking the has_seek_table flag is not enough, as
    described above.  The NULL check is not harmful, but is not helpful
    either, because free(NULL) is documented to be legal.
    
    After running this code block, we're in a well-known safe state, no
    matter how inconsistent pointer and flag may have been before, for
    whatever reasons.
    
    Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
    
    • [DH] src/libFLAC/stream_decoder.c
  • libFLAC : Fix cpuid detecton on old Cyrix CPUs

    13 juillet 2016, par Erik de Castro Lopo
    libFLAC: Fix cpuid detecton on old Cyrix CPUs
    
    Some old CPUs (eg Cyrix) set EDX but not ECX when executing CPUID.
    One of the solutions is to clear ECX before calling cpuid. From
    https://bugzilla.mozilla.org/show_bug.cgi?id=1096651#c9 bug
    
    Patch-from: lvqcl <lvqcl.mail@gmail.com>
    
    • [DH] src/libFLAC/ia32/cpu_asm.nasm