From patchwork Tue Jul 2 09:44:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 13798 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 8B06F448ECB for ; Tue, 2 Jul 2019 12:44:38 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7256068A8D5; Tue, 2 Jul 2019 12:44:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io1-f67.google.com (mail-io1-f67.google.com [209.85.166.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 60866680856 for ; Tue, 2 Jul 2019 12:44:32 +0300 (EEST) Received: by mail-io1-f67.google.com with SMTP id j6so35560492ioa.5 for ; Tue, 02 Jul 2019 02:44:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=0JxptZfNpdlkI58dHKKSNxXrzSho432LYufwcZAdzqM=; b=Ci7u0e5CldRx6sIJYshazYsbHgqYfRVkOLG0NCc9bf+IWtTi1BMN6KAYy/fC83Eaeg N4Ca+Ui6ET9JMaV54Ips2z32w/OU0NTOcxny7HMf4H5J97UxU8Abd80kYx9xum94pvBX hjg3vrXmKwQ6/Poce87fm91RvidMX6MQpN6HWzblBOC4bOIdxl/HCz8/SiPywmyT6Lql 7plW8Gem0/L1rwu2KKQQarUXJ3FsXaihLjLyFgjiNF4gDeVyVE5+CbBeotOy8Rw741yw euxTN7hrTwfGiNpILCMVI0BqLM+CLhZh7TeYLB5GWzGO2xxrcTTm/w/ue0uIcEGdDP6q LsJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=0JxptZfNpdlkI58dHKKSNxXrzSho432LYufwcZAdzqM=; b=MRaOsRmvhBxG8+PysqeuODUnRgHEQ3f7RH2AnX1uf02siS5MiSsAsT35EdvAQ//TMU XXhjF2Q8+oYXBs3CoXxi7u85L1nSO2TNSiQZFkNsCaWNt6RdzRNLszZyI6OluZTt6wHw MbvG/KOGo/gRO6OWSRsIq4MlktE8tGdcCFlRYfOWJ8RgTcAkvEcV9/UstVlYlSkKGg0E 40yCq/80I/peCX5UxdnWapW0dFpDMnquaF54oCFOSkUGSG4H9Ec0Y8t9tGnGnGey1X8R 6ntKvPaV3ITOZeSNDBVx0V8HXGuIktyKzwVyQXfz7prw6bb45TJ6JlfvmJX2LNcFdrgw 1xEw== X-Gm-Message-State: APjAAAUlsPSbPe5IYiGt1IPhv5xzrGtYu/0DbWjmODnqenJ6mBQML/Qx CzCpNIyno+y6/vabS+jIolYl7MFiR9n0ZwKJM6tmrA== X-Google-Smtp-Source: APXvYqyIOYWGu+7KxK4Cr/Zq4OziTmxBJv6xz4C8LkhuDTouGdzARmEplBJT1GqGw031beHnf391mjMbwtSTXWa/iAA= X-Received: by 2002:a5d:8c84:: with SMTP id g4mr964800ion.211.1562060670359; Tue, 02 Jul 2019 02:44:30 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Carl Eugen Hoyos Date: Tue, 2 Jul 2019 11:44:19 +0200 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH]lavc/frame_thread_encoder: Do not memcpy() from NULL X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Am Di., 2. Juli 2019 um 08:31 Uhr schrieb Reimar Döffinger : > > On 01.07.2019, at 00:51, Carl Eugen Hoyos wrote: > > I believe attached patch fixes undefined behaviour and ticket #7981. > > Same here, I think it makes more sense to check the "size" instead of the pointer. True, new patch attached. > But I also suspect we might want to think of a way to not need all these explicit checks all over. There are some places, but not so many afair. Carl Eugen From 263adbc580ecbc67edbdc6d0f89e91a484bd520f Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Tue, 2 Jul 2019 11:42:32 +0200 Subject: [PATCH] lavc/frame_thread_encoder: Do not memcpy() from NULL. Fixes ticket #7981. --- libavcodec/frame_thread_encoder.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index 55756c4c54..949bc69f81 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -209,8 +209,9 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx, AVDictionary *options){ int ret = av_opt_copy(thread_avctx->priv_data, avctx->priv_data); if (ret < 0) goto fail; - } else + } else if (avctx->codec->priv_data_size) { memcpy(thread_avctx->priv_data, avctx->priv_data, avctx->codec->priv_data_size); + } thread_avctx->thread_count = 1; thread_avctx->active_thread_type &= ~FF_THREAD_FRAME; -- 2.22.0