From patchwork Tue Apr 7 15:30:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 18750 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 DD96744B85E for ; Tue, 7 Apr 2020 19:25:32 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BFE2168B5FD; Tue, 7 Apr 2020 19:25:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f66.google.com (mail-qv1-f66.google.com [209.85.219.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5C80868B5D7 for ; Tue, 7 Apr 2020 19:25:26 +0300 (EEST) Received: by mail-qv1-f66.google.com with SMTP id p60so2112481qva.5 for ; Tue, 07 Apr 2020 09:25:26 -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; bh=jQAR9ImKzvwSq+XLGjvaVB558oy1uzH8i7xJJaeXy84=; b=oxmNj9Yw0auB8bbe4aszDBgWBOtQ47crq40ceKiDkUsHvsXjCbOcwhVQ4RcaeHPilV NrSlMjj+/4xMcEuvaxzCqua5Nme6JqULq/XkMHvzaCSifTHBcldYzLUJNxOA/0EcW59+ Y5S6Fa0vqsj1KAohzKMC1uJnWTq/vxc4vpZS7m+lcomRZdsT3+aQTqOGowP0bc5TL2rl Z3hiJhEQIM9Fa7I3wTZtxbMCw73ewGmitNk2gxt3blnak0/ot03exHFDMxcqB6MBPKCo VeGXyQngL5H59WtfWCmCSEhRN64Hk2pEXNsQiZwATqMhMd8wY6uin5b60EHOGjvWL1bW UtSQ== 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; bh=jQAR9ImKzvwSq+XLGjvaVB558oy1uzH8i7xJJaeXy84=; b=An3Kez3cZE9PEf5uJ8GMgFABpXIlAOOKGlRgbQdEtjt44D+K+mz0JS+nGvvpG4gwbc dM+yH3i4YHPztvkhb9XBUvIat24PDzmHdi2EwO5wAMYFSqDUj+BsTbUFYDS1lQ39OD60 YByQCzVNe78NW+URHGUzIPQYTbQyYPFLsv6P0HWRMJO8SKA7Uocy7PZgCpoTDcTfNVGG zSGZm5QBIGn/W562al4jPlpnJnOZsj3K7qNlP46QdfcwurfcvdTIJZwKUW/wis4sc4PS p7LLrTg2w34nT3fyyQKGHmbD9c5CHDdiivrcpYT6pfSwQzQPgDAOzRp+RzXI6AXD0pH4 Tm8w== X-Gm-Message-State: AGi0PuaBHLihi6rzpiVL7pTqCVkGehdPBMdzHP2h6vokAVtAt/jP0Pb8 dm5ekgweI/2AD73/6uzxqjjXNu54 X-Google-Smtp-Source: APiQypLpp8WVjJh8SHd85McZoqtX7d29jZhtyPIlH9jYXhItwivE/ubhVx+KMvTyDVUVSrl83ZREtA== X-Received: by 2002:a17:902:7445:: with SMTP id e5mr2895655plt.308.1586273445366; Tue, 07 Apr 2020 08:30:45 -0700 (PDT) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id a3sm14252058pfg.172.2020.04.07.08.30.43 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Apr 2020 08:30:44 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Apr 2020 23:30:39 +0800 Message-Id: <20200407153039.13162-1-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 Subject: [FFmpeg-devel] [PATCH v1] avformat/dashenc: use av_asprintf() 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang Signed-off-by: Limin Wang --- libavformat/dashenc.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index 94d4639..0c281a4 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -1832,27 +1832,16 @@ static void dashenc_delete_file(AVFormatContext *s, char *filename) { static int dashenc_delete_segment_file(AVFormatContext *s, const char* file) { DASHContext *c = s->priv_data; - size_t dirname_len, file_len; - char filename[1024]; - - dirname_len = strlen(c->dirname); - if (dirname_len >= sizeof(filename)) { - av_log(s, AV_LOG_WARNING, "Cannot delete segments as the directory path is too long: %"PRIu64" characters: %s\n", - (uint64_t)dirname_len, c->dirname); - return AVERROR(ENAMETOOLONG); - } + char *filename; - memcpy(filename, c->dirname, dirname_len); - - file_len = strlen(file); - if ((dirname_len + file_len) >= sizeof(filename)) { - av_log(s, AV_LOG_WARNING, "Cannot delete segments as the path is too long: %"PRIu64" characters: %s%s\n", - (uint64_t)(dirname_len + file_len), c->dirname, file); - return AVERROR(ENAMETOOLONG); + filename = av_asprintf("%s%s", c->dirname, file); + if (!filename) { + av_log(s, AV_LOG_WARNING, "Out of memory for filename\n"); + return AVERROR(ENOMEM); } - memcpy(filename + dirname_len, file, file_len + 1); // include the terminating zero dashenc_delete_file(s, filename); + av_free(filename); return 0; }