From ad47ac20ae3e8ac52fa23f6fa520a3124cc515cd Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sun, 9 Dec 2012 20:39:27 +0100 Subject: [PATCH] lavf/segment: remove silly assert(), improve feedback The code should not assert in case of invalid user input. Fails gracefully instead. --- libavformat/segment.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavformat/segment.c b/libavformat/segment.c index 1ad410ea88..15c87db947 100644 --- a/libavformat/segment.c +++ b/libavformat/segment.c @@ -29,7 +29,6 @@ #include "avformat.h" #include "internal.h" -#include "libavutil/avassert.h" #include "libavutil/log.h" #include "libavutil/opt.h" #include "libavutil/avstring.h" @@ -274,13 +273,18 @@ static int parse_times(void *log_ctx, int64_t **times, int *nb_times, for (i = 0; i < *nb_times; i++) { int64_t t; char *tstr = av_strtok(p, ",", &saveptr); - av_assert0(tstr); p = NULL; + if (!tstr || !tstr[0]) { + av_log(log_ctx, AV_LOG_ERROR, "Empty time specification in times list %s\n", + times_str); + FAIL(AVERROR(EINVAL)); + } + ret = av_parse_time(&t, tstr, 1); if (ret < 0) { av_log(log_ctx, AV_LOG_ERROR, - "Invalid time duration specification in %s\n", p); + "Invalid time duration specification '%s' in times list %s\n", tstr, times_str); FAIL(AVERROR(EINVAL)); } (*times)[i] = t;