avformat/mov: Use AV_DICT_DONT_STRDUP_VAL to avoid av_strdup

This will likely also fix CID 1452574 and 1452565, false positives
resulting from Coverity thinking that av_dict_set() automatically
frees its key and value parameters (even without the
AV_DICT_DONT_STRDUP_* flags).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Andreas Rheinhardt 2019-11-10 05:07:33 +01:00 committed by Michael Niedermayer
parent 9519c8dbb7
commit ad1b0a12f3

View File

@ -1129,8 +1129,8 @@ static int mov_read_ftyp(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return ret; return ret;
} }
comp_brands_str[comp_brand_size] = 0; comp_brands_str[comp_brand_size] = 0;
av_dict_set(&c->fc->metadata, "compatible_brands", comp_brands_str, 0); av_dict_set(&c->fc->metadata, "compatible_brands",
av_freep(&comp_brands_str); comp_brands_str, AV_DICT_DONT_STRDUP_VAL);
return 0; return 0;
} }
@ -5794,8 +5794,8 @@ static int mov_read_uuid(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
buffer[len] = '\0'; buffer[len] = '\0';
av_dict_set(&c->fc->metadata, "xmp", buffer, 0); av_dict_set(&c->fc->metadata, "xmp",
av_free(buffer); buffer, AV_DICT_DONT_STRDUP_VAL);
} else { } else {
// skip all uuid atom, which makes it fast for long uuid-xmp file // skip all uuid atom, which makes it fast for long uuid-xmp file
ret = avio_skip(pb, len); ret = avio_skip(pb, len);