[FFmpeg-trac] #6403(avformat:new): Use of both posix_memalign() and realloc() on same memory block not supported

FFmpeg trac at avcodec.org
Fri May 19 01:21:41 EEST 2017


#6403: Use of both posix_memalign() and realloc() on same memory block not
supported
----------------------------------+---------------------------------------
             Reporter:  jrummell  |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avformat  |                  Version:  unspecified
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+---------------------------------------
 Attempting to update Chromium to use the latest FFmpeg, I get the
 following when running some of the tests:

 realloc/memalign mismatch at 0x63cf52e67c0: non-NULL pointers passed to
 realloc must be obtained from malloc, calloc, or realloc

 This is processing an H264 file (repro case for https://crbug.com/444539).

 Chromium uses posix_memalign() for av_malloc().

 It turns out that the code in libavformat/mov.c uses both av_malloc() and
 av_realloc() on AVCodecParameters.extradata. This appears to be
 incompatible if
 HAVE_POSIX_MEMALIGN is defined.

 Allocations of extradata in
 https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/mov.c:
 line 1428 in mov_realloc_extradata() uses av_reallocp().
 line 1650 in mov_read_wave() uses av_mallocz().
 line 2073 in mov_rewrite_dvd_sub_extradata() uses av_mallocz().
 line 2333 in ff_mov_read_stsd_entries() uses av_malloc().

 I also noticed that ff_alloc_extradata() in utils.c uses av_malloc().

 So it looks like mov_realloc_extradata() should have a special case for
 HAVE_POSIX_MEMALIGN that implements realloc locally.

 (And possibly cleanup the other calls in mov.c to use
 ff_alloc_extradata()).

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6403>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list