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 BA09F4E208 for ; Tue, 29 Apr 2025 09:30:14 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1472968A962; Tue, 29 Apr 2025 12:30:09 +0300 (EEST) Received: from xmbghk7.mail.qq.com (xmbghk7.mail.qq.com [43.163.128.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 30E60687A17 for ; Tue, 29 Apr 2025 12:30:00 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1745918991; bh=Hvr/QcfWjZoF7LwD8Q8eyAtSvaKn5ZPdjGaPvB3eJyI=; h=From:To:Cc:Subject:Date; b=xomhRO8gbBD+vAPF1XzUFMgzQmK4leFwRrbD3rjGbNFO6jhPl5cckEoB3Z4SHTQar NZJh5lcxJeLqH2ULDkwiU6Muks3AV7RpDSao+BCD4Ju0H4RYDcnKM0P4VoAJP2rTiB 3qUUx7WD/CnlVBsnXEGnx9OUcSCbp9edF6dITKHs= Received: from localhost.localdomain ([119.147.10.242]) by newxmesmtplogicsvrsza36-0.qq.com (NewEsmtp) with SMTP id 7722020A; Tue, 29 Apr 2025 17:29:50 +0800 X-QQ-mid: xmsmtpt1745918990t9cuz3922 Message-ID: X-QQ-XMAILINFO: OLnGMPzD2sDVusvPJUXZMUBR0rf9NMhanzDsfcS4Txn8ztgrmpj3jZ1Re5AmD4 fNpD1Lp84BgORna+1m9sSGVow+ScX+yhfOzMF9pcKY+efHrYPsuzs8OLvGSRPTtuDdX00cUQPk3k TgQ6Xl5IjbCH9IwurmenTnIwGx7tBwrdvrw3NOoGwHjrDEQ4Is5kFZIfxtQMzDgmlwcYxCmQvt38 CtEQRO6TT2T8ocf1YF9YZkBvVOHPYYrMcIcCbDG8AqG4O3Sq7Tl+SmEZxVDl2XByiyOLApEtvUNe gFpiawMHSN6+d5hOv+xIcAKiiUiIPKEzGWQLCLAUgAM0JheflAAdzzLl7fVtOd6hIQBYIg/wMXq1 rx/SY9P695jYDOgk7XFkQ0oMaUopr2KDbT3nyNx5TckXYvh6AbyvrIDKlsKxFblcIXjX9PkAe//D bihbY047WH5RZbgjok7nBMVHcPbMUHPfoFAKRpSBl3DCkfURdHh3z9Y8ITXL1iVnBn3M+cLatCNV uj+jCCft4Vc874C96imySdTde1hqYs4mq+thyoS6/fh/QeKCJBrlHg4+DJUkfxjWPEPg0i2GDhJ8 jrjvS9c+sn5JO+H6AyDZ9a3AKHp59DtkqZ+m8aY/lkbZTpKR58aWqqsah909FjUJhPECP0HzJvGi uVRTDbNdgJIug1nnra2iU7pnOmbqrRf+fPUWPTO9zUeCKXJq+ntOtquJiOFk6YgZqeOTo6Lz0ju7 IgsKCjXSWA7GtaxRnA5vYlhXrxX4hg0LbBiFI0EPbQTn0fRuWKO/6z7mo5wBpm/E3eN10mZZCcZ6 yL2x2CvZbDtSqwRI6HREItes/MtM4XjGuZHCU7x9NhvxH1uzft1r0noq5ryIcX0ne/m4aEy7Fjeq 4mH2n4E9s6IgyqZicuWTSb07e3rfskTAlKpWD03GH+4oAR650/xCSerD/2Jz27ULgViuBwdFIq83 G/EBm0H9fHnsmG+scL5zKFzrUDJ3B80riBTnm/l3rhkxta34GeD6LKrPCoHSLz7Pc6KGBiKYo= X-QQ-XMRINFO: OD9hHCdaPRBwq3WW+NvGbIU= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Tue, 29 Apr 2025 17:29:48 +0800 X-OQ-MSGID: <20250429092948.27444-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.46.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3] 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..fe908a563b 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(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".