summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Barsnick <barsnick@gmx.net>2019-10-07 00:19:29 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2019-10-12 13:21:50 +0200
commit1ea44a55fe36c92420cba3542de256a1507f52fe (patch)
tree7c96d01163685be1016bd9de23c859a4fc01e33c
parenta3846fe69bbd71341155c33ece14b0591264caa8 (diff)
avformat/mpjpegdec: fix strict boundary search string
According to RFC1341, the multipart boundary indicated by the Content-Type header must be prepended by CRLF + "--", and followed by CRLF. In the case of strict MIME header boundary handling, the "--" was forgotten to add. Fixes trac #7921. A side effect is that this coincidentally breaks enforcement of strict MIME headers against servers running motion < 3.4.1, where the boundary announcement in the HTTP headers incorrectly used the prefix "--", which exactly matched this bug's behavior. Signed-off-by: Moritz Barsnick <barsnick@gmx.net> Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavformat/mpjpegdec.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavformat/mpjpegdec.c b/libavformat/mpjpegdec.c
index c0ffaf616e..24bf232db2 100644
--- a/libavformat/mpjpegdec.c
+++ b/libavformat/mpjpegdec.c
@@ -302,8 +302,9 @@ static int mpjpeg_read_packet(AVFormatContext *s, AVPacket *pkt)
boundary = mpjpeg_get_boundary(s->pb);
}
if (boundary != NULL) {
- mpjpeg->boundary = boundary;
- mpjpeg->searchstr = av_asprintf( "\r\n%s\r\n", boundary );
+ mpjpeg->boundary = av_asprintf("--%s", boundary);
+ mpjpeg->searchstr = av_asprintf("\r\n--%s\r\n", boundary);
+ av_freep(&boundary);
} else {
mpjpeg->boundary = av_strdup("--");
mpjpeg->searchstr = av_strdup("\r\n--");