From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 46A1D4E24A for ; Wed, 30 Apr 2025 02:30:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 47ED668AF86; Wed, 30 Apr 2025 05:30:16 +0300 (EEST) Received: from out203-205-221-155.mail.qq.com (out203-205-221-155.mail.qq.com [203.205.221.155]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EAB5F687CC7 for ; Wed, 30 Apr 2025 05:30:08 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1745980198; bh=8wwkLplK02nXjmsrtbctrTcjJhQJQiPS6Gv4WrtUcQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=rrSXmYoUfBO088NrNL7UfITdK+uObTZ9O6iwHH0OVT9IRO6iC2JS1SuesbN/3teN6 ffLwpONRWjfuTWEItIdo7o9+7yARMgIzxs+x14Bjc9bx/w40g/8iXNRSEfN7iFbs4q MWIdeTMuCpRRkAyg47P576gIVZVRsGPuaw680ZPo= Received: from localhost.localdomain ([119.147.10.242]) by newxmesmtplogicsvrszgpua8-1.qq.com (NewEsmtp) with SMTP id 779B9AD4; Wed, 30 Apr 2025 10:29:57 +0800 X-QQ-mid: xmsmtpt1745980197tgm4o8hk4 Message-ID: X-QQ-XMAILINFO: MVbvI5amSZ2YjuFfDey4vm4W3Ac3yTQYOL0sAkyWMbT6x5oRBrDUM/FoXLWEa/ USnSF/T8VEgRvBZTXROVhkcQ9IdvHKVXl04hDoGIhEL4LTPADRwpK/SnGO3MH/cfFubYBz4+A4yl MeldOXk/0RI0zme73MUFxInScLb2fyaevPC9YoPNhORGoHpVYb4HNc25J2XNWP6xTNyPuUOjfgSi MSx84B0OnOatavNKdpd+KYRjLb5GVFS2aDSmSNC0C1EUIHPsGtU74Z613Vv7BoY9noB3/LJvbaP6 gp38NMk7XAKRQgjocN/x6zCEsIgLMA2CMYkkYGswk7nUvysDQOFpHgtA40bVLUqy24Wa4DJ3pMWh IZIEDDKIB3ri9D0sZjudNIC++Q2xaeCpMxe1PZkWO/yoshU87TNf1j24I0vV6m5QLUxMncEFm5n7 dXcxsdhZwXzEdpuSku7hJB9wVpX3NzCqfG4tcMB605ci112cMww52xcaNl0TVYor5u/jtMbmkqP3 lnS55uqGmDRoMfyd+9kYY5b+heRuz7ZzVwyyIps7VxuV+dMjXxbiykkG9olAgJIUz8SOAJSI6am0 MC4OYkG397gcMEIeV27CVbh8YcG6MbqAWXbiJEcR/TVnr6SLcNjojncVsXYPcBMQR0VwPFaA2lP6 qj+Bpm2e+WpYEeGli9lm7TbBtzFD8h3tPijLZfPgegNfVLmTKL3zYl81VQdlmjNpRgkNJBKizfZm SGUn92aVF7sSe1Ul+fDOiC+kz2IXF4FGkJXFcwOkrjF/ZFInyBfRfI+VkFfydKryOoDEvCNBJt6A vcOa8JSZeS3H/LfwU4DfzagPM/hsJlQUX355+aeh1xLfwbsQNkR6sVsSRjXeyGd+ImgAKuZv2FqB 3TqdsGl1yUn+UeyipI+jf+PRyq+NW42U446+9aG7gZ/uRqPxyRwdzLsmVjc53E5haZsslRgr27CW 2Cc5eVFgTDgyLNA5FDHKGKjmjB+sqMlBIXrJsiyPisddjkphxeTdR3tgxxWg4r X-QQ-XMRINFO: NI4Ajvh11aEj8Xl/2s1/T8w= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Wed, 30 Apr 2025 10:29:56 +0800 X-OQ-MSGID: <20250430022956.83879-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: References: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4] avformat/hls: Return error code when read key file failed 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: Zhao Zhili Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Zhao Zhili --- libavformat/hls.c | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/libavformat/hls.c b/libavformat/hls.c index 6623c80309..5cddf4b5c0 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -1331,6 +1331,37 @@ static void intercept_id3(struct playlist *pls, uint8_t *buf, pls->is_id3_timestamped = (pls->id3_mpegts_timestamp != AV_NOPTS_VALUE); } +static int read_key(HLSContext *c, struct playlist *pls, struct segment *seg) +{ + AVIOContext *pb = NULL; + + int ret = open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL); + if (ret < 0) { + av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s, %s\n", + seg->key, av_err2str(ret)); + return ret; + } + + ret = avio_read(pb, pls->key, sizeof(pls->key)); + ff_format_io_close(pls->parent, &pb); + if (ret != sizeof(pls->key)) { + if (ret < 0) { + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, %s\n", + seg->key, av_err2str(ret)); + } else { + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, read bytes %d != %zu\n", + seg->key, ret, sizeof(pls->key)); + ret = AVERROR_INVALIDDATA; + } + + return ret; + } + + av_strlcpy(pls->key_url, seg->key, sizeof(pls->key_url)); + + return 0; +} + static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, AVIOContext **in) { AVDictionary *opts = NULL; @@ -1352,19 +1383,9 @@ static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) { if (strcmp(seg->key, pls->key_url)) { - AVIOContext *pb = NULL; - if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL) == 0) { - ret = avio_read(pb, pls->key, sizeof(pls->key)); - if (ret != sizeof(pls->key)) { - av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s\n", - seg->key); - } - ff_format_io_close(pls->parent, &pb); - } else { - av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s\n", - seg->key); - } - av_strlcpy(pls->key_url, seg->key, sizeof(pls->key_url)); + ret = read_key(c, pls, seg); + if (ret < 0) + goto cleanup; } } -- 2.46.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".