[FFmpeg-cvslog] libavformat/ffmetadec.c: Fix Use-of-uninitialized-value
Thierry Foucu
git at videolan.org
Sat Aug 22 23:51:50 EEST 2020
ffmpeg | branch: master | Thierry Foucu <tfoucu at gmail.com> | Thu Aug 20 12:14:52 2020 -0700| [5cf439e72ec3432fc52f73badfd0b5ec90162ffa] | committer: Michael Niedermayer
libavformat/ffmetadec.c: Fix Use-of-uninitialized-value
Check the return value of sscanf as it can return -1(EOF), for example
when the first char in the line is 0x00
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5cf439e72ec3432fc52f73badfd0b5ec90162ffa
---
libavformat/ffmetadec.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/libavformat/ffmetadec.c b/libavformat/ffmetadec.c
index 45c92f1ff6..0ea89fe3f3 100644
--- a/libavformat/ffmetadec.c
+++ b/libavformat/ffmetadec.c
@@ -101,19 +101,22 @@ static AVChapter *read_chapter(AVFormatContext *s)
uint8_t line[256];
int64_t start, end;
AVRational tb = {1, 1e9};
+ int ret;
get_line(s->pb, line, sizeof(line));
if (sscanf(line, "TIMEBASE=%d/%d", &tb.num, &tb.den))
get_line(s->pb, line, sizeof(line));
- if (!sscanf(line, "START=%"SCNd64, &start)) {
+ ret = sscanf(line, "START=%"SCNd64, &start);
+ if (ret <= 0) {
av_log(s, AV_LOG_ERROR, "Expected chapter start timestamp, found %s.\n", line);
start = (s->nb_chapters && s->chapters[s->nb_chapters - 1]->end != AV_NOPTS_VALUE) ?
s->chapters[s->nb_chapters - 1]->end : 0;
} else
get_line(s->pb, line, sizeof(line));
- if (!sscanf(line, "END=%"SCNd64, &end)) {
+ ret = sscanf(line, "END=%"SCNd64, &end);
+ if (ret <= 0) {
av_log(s, AV_LOG_ERROR, "Expected chapter end timestamp, found %s.\n", line);
end = AV_NOPTS_VALUE;
}
More information about the ffmpeg-cvslog
mailing list