Browse Source

opt: check the return values of av_get_token for ENOMEM.

tags/n2.0
Anton Khirnov 12 years ago
parent
commit
bcc9432898
1 changed files with 7 additions and 0 deletions
  1. +7
    -0
      libavutil/opt.c

+ 7
- 0
libavutil/opt.c View File

@@ -562,9 +562,16 @@ static int parse_key_value_pair(void *ctx, const char **buf,
char *val; char *val;
int ret; int ret;


if (!key)
return AVERROR(ENOMEM);

if (*key && strspn(*buf, key_val_sep)) { if (*key && strspn(*buf, key_val_sep)) {
(*buf)++; (*buf)++;
val = av_get_token(buf, pairs_sep); val = av_get_token(buf, pairs_sep);
if (!val) {
av_freep(&key);
return AVERROR(ENOMEM);
}
} else { } else {
av_log(ctx, AV_LOG_ERROR, "Missing key or no key/value separator found after key '%s'\n", key); av_log(ctx, AV_LOG_ERROR, "Missing key or no key/value separator found after key '%s'\n", key);
av_free(key); av_free(key);


Loading…
Cancel
Save