aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-02-14 22:24:46 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-02-27 07:20:59 +0100
commit3e8771e99e0c5572b92dccc0a6a034ab121d96cd (patch)
tree71a0a0bb7c0038b43d6cfaeaea5a9649be8ef922
parenta86fd1c7d58369d56a016c313b2472a2920795a2 (diff)
downloadffmpeg-3e8771e99e0c5572b92dccc0a6a034ab121d96cd.tar.gz
avformat/utils: Fix undefined NULL + 0
This is undefined behaviour in C, so use data = len ? data + len : data instead of data += len. GCC optimizes the branch away in this case; Clang unfortunately doesn't. Fixes ticket #8592. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> (cherry picked from commit 9c0b3eddf4262f9dcea479091f1307444e614e88)
-rw-r--r--libavformat/utils.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 7185fbfd71..c78af468d4 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1472,7 +1472,7 @@ static int parse_packet(AVFormatContext *s, AVPacket *pkt,
pkt->pts = pkt->dts = AV_NOPTS_VALUE;
pkt->pos = -1;
/* increment read pointer */
- data += len;
+ data = len ? data + len : data;
size -= len;
got_output = !!out_pkt.size;