Opened 6 years ago
Last modified 6 years ago
#7920 new defect
"-strict_mime_boundary 1" doesn't actually apply a strict boundary
Reported by: | barsnick | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avformat |
Version: | git-master | Keywords: | mpjpeg |
Cc: | barsnick@gmx.net | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
The mpjpegdec option "-strict_mime_boundary 1" doesn't actually apply a strict boundary, as it doesn't find the boundary tag in the "Content-type:" header.
How to reproduce:
You would need a stream which doesn't actually adhere strictly to the boundary specification to notice.
With debug code, you can determine that even if a boundary is given in the "Content-type:" header, mpjpegdec fails to match it and falls back to the non-strict "\r\n--" boundary.
Note:
See TracTickets
for help on using tickets.
Root cause is this:
https://github.com/FFmpeg/FFmpeg/blob/b401a4ab8aa85c536bd9eee0da8f51551b66c70e/libavformat/mpjpegdec.c#L274
Using the call
the function
mpjpeg_get_boundary()
tries to match the parameter for the given multipart boundary.av_stristart(str, pfx, ptr)
is documented as:So, assuming this call actually matches the "boundary=" parameter check, it returns non-zero. Unfortunately, the code for the good (match) case is checked with
!
, which means it incorrectly checks for zero. In other words, the!
is misplaced.