From patchwork Fri Nov 3 04:44:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Johansen X-Patchwork-Id: 44487 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:181:818d:5e7f with SMTP id q28csp315638pzh; Thu, 2 Nov 2023 21:45:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGN+wqnDF6bgsux/JnCHIEJJPur+DGSkN1aOv17vJb3EtqyLVIxm2OFdeZh1WteW6Zahg/9 X-Received: by 2002:a17:906:4fcd:b0:9d3:2de:5cbe with SMTP id i13-20020a1709064fcd00b009d302de5cbemr5898386ejw.18.1698986707495; Thu, 02 Nov 2023 21:45:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698986707; cv=none; d=google.com; s=arc-20160816; b=lhW/pRkFzzpzYdaZ4Xo/Iv5JXDFvWtbfrk66lw7ZMPjXa4007qJdF5vaDwE7TTyZCx auEYycZcanYKs8BNdXFxxGXvdFXODdHmdzNoZnB8wgXfErPJKP2sEkeJOOgE2Wl9NJ97 1+q/6/ZsqB7uzcQM45nX9lcKqX+b1zcD9NJWuQiPPyj1C+IlZGKd1jw3r6aRDSWnyfIf y14IGbMkATB3YuTKyTIiS6+cIM51oNqT/NzCcxbhzWj0TLBEE4UIOI1N0NeAunAbT2w6 oRHhU2K4MGLybw8+Ewc/LXxR2A3B5hIFqtrDBAe9woayjueo7+wulobbB/159fImHoTy tdRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=On0uOyhO6Nu4sYC/D+XbYSHPLT4XOKC6R/tkTw7PHIE=; fh=BNczk7MtTFTHa4uMdKY29AxmcfAa404kNGyDf0xbsP0=; b=jZrWjyda9spoW4b2KMRnO/DU+ZQ0a80K5cPuIFoMnETTaQV2IbsU2mq1G2zlg4kf6g rflJOMpiUJB2bmqsI6bMyrUTMLQioEZg7XAzIcarqAfqxwLjCA3E8yW3SMDU0HcEEP/u yeiM+mqWX0G4j3rxqMQR3qzcqV8mH9XSON/mPqyb95Z5ryQsMZd1tIUkwbgZ4kBneIYJ xJtMwq5BaDWXp9BZNS7e+xVg4+V5mi/SIucQ9/Dj5Y2t1oaF0ymi4jBoe/0opv3Q38mq Y2s26Rd2xSUqqvaVc+Fxat+WTNCT+sMTsMlBxrlndrSkIvfbwFH8Bk7K2g/DaFlzFy7+ e3uw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=F+1eJdbB; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id wu10-20020a170906eeca00b009c656f199d4si521435ejb.777.2023.11.02.21.45.06; Thu, 02 Nov 2023 21:45:07 -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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=F+1eJdbB; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2963968CC9C; Fri, 3 Nov 2023 06:45:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2C38F68CC82 for ; Fri, 3 Nov 2023 06:44:56 +0200 (EET) Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1cc921a4632so9932055ad.1 for ; Thu, 02 Nov 2023 21:44:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698986693; x=1699591493; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=DzUt1lSTEjL0xxzmFwtxKeAqZSHp9tfnhEFbCWUx0eY=; b=F+1eJdbBeQe+2N0Nd0Lb/4Da9g99gd3BqJS47PZuZWVenMX/vXxdo6VRNimJ84AXj7 9dGGfFi0w8cqtt8XlEdwxbAbjFQjEYI3mDWomMBmSWebJObSlXxlzFHJ1aVZA5QCdufV GA0xxuRq0EIiSD3Sx319efxp2CQJtyihMLy2PU16W/7WagX+6BB5fYMcEA3V3P2Oe6Dk wXdd/TWT8jpBrPKTKmCKtHfQ7c6NZf+lv1dvAAEMq015lMsSNtQeuW2Ez8uBjzHBAt6h 9msUWUAZjDPCNHsmsm07IS+5CBZRkItV+CdOF5evVlN1phxiLWUl2mD43Gt9WMzeGyRa SnVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698986693; x=1699591493; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DzUt1lSTEjL0xxzmFwtxKeAqZSHp9tfnhEFbCWUx0eY=; b=nTsqMwPOrd1FfWm8gLnmYOfQWDRtbz9AKGi5GtqqRt0ZSr7qokMBbiSSHfcYBFeiU1 IT2st4th+fuc2XgKaMbAq3HwIk5TKu0Z5nQc0FQ0v1v5FmcOESxLY8WQhaYTGwsDXwGI yOmIE4gkqreakqi6iqxjz5HJ03Z0/Hf99NzTXMxeOQH4SGUtY2C/eJ+Hx6pqn9QLEabH uqCBeQees/N+Xr83W+ZzScybYyuPJk34AuQiQjYLAudGhmIppvKGeFo39KQRPeoC5uiE Ku+i+ys+SM236gWQBsxe4m0NkYpsNsLLUxAX0/EJWPN/zG7UWpF5ZJ1KDxjTu2hvclZT 5iDQ== X-Gm-Message-State: AOJu0YzvPHOaR5K7XMqHoYOLGgiw3kJPKDcORB2LpP0NlK2ZkYSDlM8/ nTtqT/hbdtaAxsQ0g57MAjkIz0K10A97hQ== X-Received: by 2002:a17:902:f54e:b0:1cc:6b55:fc5 with SMTP id h14-20020a170902f54e00b001cc6b550fc5mr10708869plf.29.1698986693111; Thu, 02 Nov 2023 21:44:53 -0700 (PDT) Received: from localhost.localdomain ([2605:a601:a98f:6200:548b:251b:82ae:3733]) by smtp.gmail.com with ESMTPSA id s9-20020a170902ea0900b001c5076ae6absm480726plg.126.2023.11.02.21.44.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Nov 2023 21:44:51 -0700 (PDT) From: Dave Johansen To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Nov 2023 22:44:49 -0600 Message-Id: <20231103044449.83331-1-davejohansen@gmail.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/hlsenc: Only append postfix to fmp4 init filename if not in the subdir 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 Cc: Dave Johansen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: zvdENabyw6sy --- libavformat/hlsenc.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 4ef84c05c1..dd1a461cce 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -1931,6 +1931,30 @@ fail: return ret; } +static int validate_subdir(const char *fn) +{ + const char *subdir_name; + char *fn_dup = NULL; + int ret = 0; + + if (!fn) + return AVERROR(EINVAL); + + fn_dup = av_strdup(fn); + if (!fn_dup) + return AVERROR(ENOMEM); + subdir_name = av_dirname(fn_dup); + + if (!av_stristr(subdir_name, "%v")) { + ret = AVERROR(EINVAL); + goto fail; + } + +fail: + av_freep(&fn_dup); + return ret; +} + static int format_name(const char *buf, char **s, int index, const char *varname) { const char *proto, *dir; @@ -3019,7 +3043,7 @@ static int hls_init(AVFormatContext *s) av_freep(&vs->fmp4_init_filename); ret = format_name(hls->fmp4_init_filename, &vs->fmp4_init_filename, i, vs->varname); - } else { + } else if (validate_subdir(s->url) < 0) { ret = append_postfix(vs->fmp4_init_filename, fmp4_init_filename_len, i); } if (ret < 0)