summaryrefslogtreecommitdiff
path: root/libavformat/segment.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2012-12-09 20:39:27 +0100
committerStefano Sabatini <stefasab@gmail.com>2012-12-09 20:42:35 +0100
commitad47ac20ae3e8ac52fa23f6fa520a3124cc515cd (patch)
tree96d993ab2df6b8bb14c0effefc25d689b5adc5ad /libavformat/segment.c
parent68bc012190f9732a0f103fdd08f9bc63edc1c74d (diff)
lavf/segment: remove silly assert(), improve feedback
The code should not assert in case of invalid user input. Fails gracefully instead.
Diffstat (limited to 'libavformat/segment.c')
-rw-r--r--libavformat/segment.c10
1 files 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;