[FFmpeg-trac] #6117(undetermined:new): type mismatch of AC3EncodeContext in different translation units

FFmpeg trac at avcodec.org
Wed Feb 1 12:55:18 EET 2017


#6117: type mismatch of AC3EncodeContext in different translation units
-------------------------------------+-------------------------------------
             Reporter:  dkrupp       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 While analyzing your project with clang I spotted the following problem.

 The struct AC3EncodeContext (defined in ac3enc.h) is defined differently
 depending on the CONFIG_AC3ENC_FLOAT macro.

 When compiling eac3enc.c the CONFIG_AC3ENC_FLOAT is 1, while in ac3enc.c
 it is 0.

 But there is a pass of this struct from in line 417 in ac3enc.c
 ...
     if (CONFIG_EAC3_ENCODER && s->eac3)
         ff_eac3_get_frame_exp_strategy(s);
 ...
 The two translation units (TU) are linked together, and since the
 definition of the struct in the TUs are different, this could cause memory
 corruption problems when accessing its fields (and against the one
 definition rule).

 The potential bug still exists in commit
 e4d65434633b67fd03d379fe9d0ab9dc97d767dc

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


More information about the FFmpeg-trac mailing list