From patchwork Sun Aug 23 09:50:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 21828 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 68B0D44B56D for ; Sun, 23 Aug 2020 12:50:59 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 49D4068807D; Sun, 23 Aug 2020 12:50:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f66.google.com (mail-ej1-f66.google.com [209.85.218.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0698D680855 for ; Sun, 23 Aug 2020 12:50:53 +0300 (EEST) Received: by mail-ej1-f66.google.com with SMTP id si26so8196631ejb.12 for ; Sun, 23 Aug 2020 02:50:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RCfnMxrkvfTv1fBmexnhNOWnIB/EuGRlgw9ippiXqqE=; b=BJm374cGTLPfOIAU1vJA/CR9YzLMIMTR93wJ46OukANg3DyNw5PyTxQPWw0uIKhgLb 1cZhNwE9DD1QWIOz/3g1yg1Ofg6rkyEKsTrWAiQygXiBIKrABkiu5OnxsJZl+CeO5NP7 TurFCPFnO9lwsEpCvwbAYh64ttclrKJorrzojhyX1vMf1uKd9BXQBl2x1n2ChEJMKl28 T658O6qv600n6NhILvMS5vFZiwfUfgErW/iXPxD47eEGpOF+QgaotxcmhOSOS/RbD4jf gFcFWcmRImz1h9fsJH7eDxco2las9unBVmFlzu1YAZ2X47XgtIfteS63AgtTKnZAFwfG xfgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RCfnMxrkvfTv1fBmexnhNOWnIB/EuGRlgw9ippiXqqE=; b=qimzVVMOvHkt1f99iokBP1pqTVjDEnT0TPW57BQRpqXMWuETYL3MkyJW+GU4Ypn6Nf RXc/mog4YfQCli5efq0THQk4OhtnyRQ4RcfTkj7xzSMW5D3Clj49hDNLTrQVbsgPFLEi RJid0wJ69MPJ08co08D6M2sHlIfYqUdbTy94ksIepoZiL7dFpHLLIR4OBI40WKOi/I7V Ekz/KOTV1H09QvrUYjNxGQHxJEiksp2LcU9sTlhoOrLcHkrzlk5A74hkVZHLuS9Xj6LN gubccGFFhWMkYR5/i0l63i+zivgf+Z/GQXs16c8OqY1uYxO5qSuFSOPlKEL8gKYsaBCt bz+A== X-Gm-Message-State: AOAM531n0p06h7GM2Dbp69gBV5fXVnPPLo03qbb3rYaSQacXm4OmAyJ1 I4H+/aqbeIQbd+Sr03ofycujLiJAGPE= X-Google-Smtp-Source: ABdhPJwZcYRCYB9ZhXeesIIy7DIAKzc+UYP55WLOWBVe/TA/RoSqsdu/nh4agx6KX2GtAYKR40vlug== X-Received: by 2002:a17:906:2296:: with SMTP id p22mr836002eja.510.1598176252149; Sun, 23 Aug 2020 02:50:52 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id v10sm5256022eda.87.2020.08.23.02.50.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2020 02:50:51 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 23 Aug 2020 11:50:36 +0200 Message-Id: <20200823095039.18851-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200822230434.11347-1-andreas.rheinhardt@gmail.com> References: <20200822230434.11347-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/7] avfilter/graphparser: Check allocations for success 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" parse_filter() did not check the return value of av_get_token() for success; in case name (the name of a filter) was NULL, one got a segfault in av_strlcpy() (called from create_filter()). Signed-off-by: Andreas Rheinhardt --- libavfilter/graphparser.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c index e96b20418e..a52916a146 100644 --- a/libavfilter/graphparser.c +++ b/libavfilter/graphparser.c @@ -186,9 +186,16 @@ static int parse_filter(AVFilterContext **filt_ctx, const char **buf, AVFilterGr char *name = av_get_token(buf, "=,;["); int ret; + if (!name) + return AVERROR(ENOMEM); + if (**buf == '=') { (*buf)++; opts = av_get_token(buf, "[],;"); + if (!opts) { + av_free(name); + return AVERROR(ENOMEM); + } } ret = create_filter(filt_ctx, graph, index, name, opts, log_ctx);