mirror of https://git.ffmpeg.org/ffmpeg.git
lavu/dict: check for malloc failures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
a66893ac94
commit
a963fdb0ea
|
@ -75,6 +75,8 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
|
|||
|
||||
if (!m)
|
||||
m = *pm = av_mallocz(sizeof(*m));
|
||||
if (!m)
|
||||
goto err_out;
|
||||
|
||||
if (tag) {
|
||||
if (flags & AV_DICT_DONT_OVERWRITE) {
|
||||
|
@ -100,6 +102,8 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
|
|||
m->elems[m->count].key = (char*)(intptr_t)key;
|
||||
else
|
||||
m->elems[m->count].key = av_strdup(key);
|
||||
if (!m->elems[m->count].key)
|
||||
goto err_out;
|
||||
if (flags & AV_DICT_DONT_STRDUP_VAL) {
|
||||
m->elems[m->count].value = (char*)(intptr_t)value;
|
||||
} else if (oldval && flags & AV_DICT_APPEND) {
|
||||
|
@ -123,7 +127,7 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
|
|||
return 0;
|
||||
|
||||
err_out:
|
||||
if (!m->count) {
|
||||
if (m && !m->count) {
|
||||
av_free(m->elems);
|
||||
av_freep(pm);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue