From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 300B84C2BC for <ffmpegdev@gitmailbox.com>; Mon, 7 Apr 2025 22:45:50 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 42BAC687B76; Tue, 8 Apr 2025 01:45:46 +0300 (EEST) Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 92676687BAC for <ffmpeg-devel@ffmpeg.org>; Tue, 8 Apr 2025 01:45:39 +0300 (EEST) Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-2ff64550991so3821106a91.0 for <ffmpeg-devel@ffmpeg.org>; Mon, 07 Apr 2025 15:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744065936; x=1744670736; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=Xj0W20aF3FO9MyHK3uvFKMKcHlvWPgFRYi3mJJSketg=; b=Fl5uE8KIUSWiTDSi06wGr5rpZ2EKH19l/KklWQ/kVQKf9scic0bPvQVQgYqLWt7R0l x72FJ6HdjiheO9X7vwO/3cbQfzjP2mw5VVYS4oeOyKjeJqsbPPNkbFcW6nC4MtdLgiMP NmecqcHyXvnHBn5UNUEBAPt8Uoy4gSA/CaXBkrHFovppHisc6ELjHlXGCmot3B/A/GWB zc0aPdSHTTte1oI5gTl6JIEOkZhWkIobo6hhwuQYEUI/JdsLBSJY8W4cQ3iWl1jCVM9p rMbkqOZg04yIGf+2dOxP6wjXeY/7VA1zFJTIXsZUel/Xd40e8q8WsBYLjwP+0sFNGtB8 M1ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744065936; x=1744670736; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Xj0W20aF3FO9MyHK3uvFKMKcHlvWPgFRYi3mJJSketg=; b=n00/JXK/0zrrMTkdGIyIDmiNAOakfFhLJYlig5Kuhk2sPzKiEpvZ41n/9OQqJEe/0Q 2j4sFH6CVOkk6L7ZMH/ZaMTMmcOAzw4pIcLOVmA7kI1ToEHjigZAF92fzlJGYX4GNWiO litGLOdDaMG7TeXBj9uI5ZkPseQVvVYNrP0ZuJI2CRV4azdIwYsCHm0TgcFZ2N8H8MEx iVf5Szb253Dl+WWPAV7keaUI1nEPZr+8JInvo5L2yUCvUYVqlNr+nUBT0un5Hq7ep56B xK+07oJFLYrSVlz1EtnmqvGzqxpn23gsvRCXg9oSx0YS/6wckZcSLReJBZUxKWcEpCRg 7ALQ== X-Gm-Message-State: AOJu0Yw1kJvzIFSWX93XeU2r8xuehx9Yvx70EC/u/UnQf21qhExwnbE2 RDnBgPjOLbmZzucEe6Ha8BgwbgBDs9EZPyc53h4C1E04AEF1rhWRBEBhmA== X-Gm-Gg: ASbGncuRsGQB0VHJ/FmN8qPmYnncVU3C5vcKYWPlxOXnwh/AreSxx0DIUTFtz2VeKDz zNLdj7IhjxXgGp9s93MiLlVWKQcy3GmX/5ovMIQo1UtB6/t0MfYfhxz3kT6vrK+Czdb6e96NuuS 1vr9tkOkt2ryLMTbMaf12xQDbPIm9I2i/TxclUuFJjdvSKAbRQ3btumpun1uRCsUooLs6tyIqgY YB5qDYt0jtQ08My2Tkxq9GQ9+76vDTccj0TSpL1bAtApqvu5m0JvxpKk/KSTkGRc+Wn0d4dxvkx 8lGqtO/3WqDfiH2256apaitNdOrYGWo1fQIDOBDmadwWysDVz7k8W7VD/9NLZmo8 X-Google-Smtp-Source: AGHT+IFhiN5Zx9/8DzREA5YUYMmVQPi6yuh0IopGu0DWxvT4FL5OLsEs2V7UjP3E/fhYZywZQ0v5SA== X-Received: by 2002:a17:90b:2710:b0:2ee:741c:e9f4 with SMTP id 98e67ed59e1d1-306a615018dmr19313160a91.11.1744065936397; Mon, 07 Apr 2025 15:45:36 -0700 (PDT) Received: from localhost.localdomain ([2800:2121:b000:82e:104f:6880:202d:b978]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3057ca1e3d6sm10850208a91.3.2025.04.07.15.45.35 for <ffmpeg-devel@ffmpeg.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 15:45:35 -0700 (PDT) From: James Almer <jamrial@gmail.com> To: ffmpeg-devel@ffmpeg.org Date: Mon, 7 Apr 2025 19:45:23 -0300 Message-ID: <20250407224523.1455-1-jamrial@gmail.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avutil/dict: fix memleak in av_dict_set() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250407224523.1455-1-jamrial@gmail.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> Regression since 19e9a203b7b8e613840b055cdf68303a4fb84581. Signed-off-by: James Almer <jamrial@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); if (!m) m = *pm = av_mallocz(sizeof(*m)); - if (!m || !copy_key || (value && !copy_value)) + if (!m) goto enomem; if (tag) { -- 2.49.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".