From patchwork Sat Jul 3 11:42:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gyan Doshi X-Patchwork-Id: 28744 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp2462160ios; Sat, 3 Jul 2021 04:42:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzeiRhMDP8Ej4PdMft/nDyXMZB1CfO56d1cxv4ZWMppa+PZmDwfmDTzuGB4ujx15Kyk2qd4 X-Received: by 2002:a17:907:3d94:: with SMTP id he20mr1773466ejc.231.1625312576405; Sat, 03 Jul 2021 04:42:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625312576; cv=none; d=google.com; s=arc-20160816; b=IYgCXRR9BOGMGdGaIkCCYPoMW+f7M9H7IW1T/1BHy31TW1qUGshInF3okiQw+P6qvX Sxxlefu2Ymd02fb5RPGGrMvfOry0j5nz9Bi9C3j1NOpgPGeHrb7G/VLXEhKkBp0re7Kq rfeQYP+kNX0NE1JtOI5hYIMJ7GwwUzbWpVpBQOffdOEJxg55vZER2dNnC5QSCxFcCYZe WsnPrs7ysoqlYcz6nHENItLY+DBPiKFjywLlWR3tB8fQvECsCTk6rgZP48JrJNwYvK/m anzd5z5dqb/Yt56R/klMimaEzQXdmHZD01zy2XK6OZ7mtnDWOMrBN6hZK4emhXDzlq8N vE4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :delivered-to; bh=WLWvqKk2sezYKENf/RL0mD5U7TXtWALd2M2FfdhKDyI=; b=ytfuEUrLJWAofxfQPEquaZHWs+Qe5nagOM1sKe7pwwjalmJXHKKPATHHnWtf6aYiwJ mlBtNaRZWqxybpOHC4C4Gir4NJqkmlo79ch3i9eBOvtrveZRdT+Ojl03VwFKbmd3b7st e5szB4NWYYWx8ySNILDgU4ohIHj8IU6qRHzCNnsb7S8IOMAP9YXv7ZSR5aFWps5iFfDC MWokvUdM5Bt86wlKX1ikVbjJWhcKup8eseBVUyQ2A1ZQ3To4Ipx125JA/6/wfXQmeHZx amP41YykySUdY0kjaLkj+dszH2DwfA2FHaC8Y+BPGN/W4srWZmGiv9GOcipA6jBsBb8T jqbA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h24si6590790ejt.474.2021.07.03.04.42.55; Sat, 03 Jul 2021 04:42:56 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CEADD68A132; Sat, 3 Jul 2021 14:42:50 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mout-p-103.mailbox.org (mout-p-103.mailbox.org [80.241.56.161]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 64346689F86 for ; Sat, 3 Jul 2021 14:42:43 +0300 (EEST) Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4GH96p5qm3zQk9d for ; Sat, 3 Jul 2021 13:42:42 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by spamfilter03.heinlein-hosting.de (spamfilter03.heinlein-hosting.de [80.241.56.117]) (amavisd-new, port 10030) with ESMTP id YySOrDUsd6Mu for ; Sat, 3 Jul 2021 13:42:39 +0200 (CEST) From: Gyan Doshi To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Jul 2021 17:12:22 +0530 Message-Id: <20210703114222.5684-1-ffmpeg@gyani.pro> MIME-Version: 1.0 X-MBO-SPAM-Probability: * X-Rspamd-Score: 0.32 / 15.00 / 15.00 X-Rspamd-Queue-Id: EAAE318AD X-Rspamd-UID: 070905 Subject: [FFmpeg-devel] [PATCH] avcodec/bsf: switch to av_get_token to parse bsf list string X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: S7/LhqEck0RB The recently added setts bsf makes use of the eval API whose expressions can contain commas. The existing parsing in av_bsf_list_parse_str() uses av_strtok to naively split the string at commas, thus preventing the use of setts filter with expressions containing commas. --- libavcodec/bsf.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libavcodec/bsf.c b/libavcodec/bsf.c index 9d67ea5395..726911785d 100644 --- a/libavcodec/bsf.c +++ b/libavcodec/bsf.c @@ -520,7 +520,8 @@ static int bsf_parse_single(char *str, AVBSFList *bsf_lst) int av_bsf_list_parse_str(const char *str, AVBSFContext **bsf_lst) { AVBSFList *lst; - char *bsf_str, *buf, *dup, *saveptr; + char *bsf_str, *dup; + const char *buf; int ret; if (!str) @@ -530,18 +531,18 @@ int av_bsf_list_parse_str(const char *str, AVBSFContext **bsf_lst) if (!lst) return AVERROR(ENOMEM); - if (!(dup = buf = av_strdup(str))) { + if (!(buf = dup = av_strdup(str))) { ret = AVERROR(ENOMEM); goto end; } - while (bsf_str = av_strtok(buf, ",", &saveptr)) { + do { + bsf_str = av_get_token(&buf, ","); ret = bsf_parse_single(bsf_str, lst); + av_free(bsf_str); if (ret < 0) goto end; - - buf = NULL; - } + } while (*buf == ',' && buf++); ret = av_bsf_list_finalize(&lst, bsf_lst); end: