Hi James On Mon, Apr 07, 2025 at 07:45:23PM -0300, James Almer wrote: > Regression since 19e9a203b7b8e613840b055cdf68303a4fb84581. > > Signed-off-by: James Almer <jamr...@gmail.com> > --- > libavutil/dict.c | 19 ++++++++++--------- > 1 file changed, 10 insertions(+), 9 deletions(-) > > diff --git a/libavutil/dict.c b/libavutil/dict.c > index f7dcd07eeb..fafb454fd3 100644 > --- a/libavutil/dict.c > +++ b/libavutil/dict.c > @@ -99,27 +99,28 @@ int av_dict_set(AVDictionary **pm, const char *key, const > char *value, > err = AVERROR(EINVAL); > goto err_out; > } > + if (flags & AV_DICT_DONT_STRDUP_KEY) > + copy_key = (void *)key; > + else > + copy_key = av_strdup(key); > + if (!copy_key || (value && !copy_value)) > + goto enomem; > + > if (!(flags & AV_DICT_MULTIKEY)) { > tag = av_dict_get(m, key, NULL, flags); > } else if (flags & AV_DICT_DEDUP) { > while ((tag = av_dict_get(m, key, tag, flags))) { > if ((!value && !tag->value) || > (value && tag->value && !strcmp(value, tag->value))) { > - if (flags & AV_DICT_DONT_STRDUP_KEY) > - av_free((void*)key); > - if (flags & AV_DICT_DONT_STRDUP_VAL) > - av_free((void*)value); > + av_free(copy_key); > + av_free(copy_value); > return 0; > } > } > } > - if (flags & AV_DICT_DONT_STRDUP_KEY) > - copy_key = (void *)key; > - else > - copy_key = av_strdup(key);
Should be ok Maybe slightly better if the strdup isnt moved up as theres a case then where we strdup and free it. thx -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Those who are best at talking, realize last or never when they are wrong.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".