From patchwork Thu Sep 7 01:05:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43608 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b17:b0:149:dfde:5c0a with SMTP id l23csp296681pzh; Wed, 6 Sep 2023 18:04:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFBbvFKxOZeAOioNuRSJ7p3Jbyu8jzE5T3zIbJKSUCLW8ceUK9z0A8Sl02iCcKSd/YX3dgx X-Received: by 2002:a17:906:51d7:b0:9a1:beb2:1cb8 with SMTP id v23-20020a17090651d700b009a1beb21cb8mr3733935ejk.39.1694048689098; Wed, 06 Sep 2023 18:04:49 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ks8-20020a170906f84800b0099bcf1c07cbsi9878624ejb.883.2023.09.06.18.04.37; Wed, 06 Sep 2023 18:04:49 -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=@outlook.com header.s=selector1 header.b=ToOTSBKS; arc=fail (body hash mismatch); 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=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3ADA668C7B0; Thu, 7 Sep 2023 04:04:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03olkn2099.outbound.protection.outlook.com [40.92.59.99]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 20E5168C2FB for ; Thu, 7 Sep 2023 04:04:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kaqX/Dlxgiy1wBkuSBXuGZj1FTZ3nx4Es7KDaKVwVsK+FTpjd6aPfFeaX0t4JUkynB26/rpVLoauMQ+w1kBTq+sWx20eZAN6HWjSeDw4fmaaUHWEJj9l/TMrBowaBU8z9nh2qKAOm6UJHiZ5aHIQt9tvP5xdvw/SHGLO51cc6ezJpe3p6afJBW/6OIpGXG0jp9o3t+0VczikUWUFMG+jnqGFuC7cGoHobVtYvtLdMJDZ4zmZvIWG1B7nSYGCSMsiLW5wsrcv8w3RxN1W5ZymEh1BJ8qmAXX9mP/q2oDgDyuBL6p04GIQK1AHvIQ+o2rOWmmVMDeonCiNe3rJrlg64Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=t03f7CfqK5fa43LsBJ7FNZQC0PpevENZifMUSKY8RA8=; b=HKS6hHAIicmpdfMty8AifTldjjMTzlI4TBWo12mf5TRojsEQGtaGbjDsaMPQoxHSMQfYHOBoIiL5AWta2nD9k5UX872DUEh/n8MU8Mf6U32s3PreL2KUgqg3MLtwDd0e9L07DOGp7Z18fXxCWNmfgg8AkGtfwmsi9WxrcwpBJxXHKDcTOB0rJQjjCypya9uwr53Xm3eO91AXQoRgVJIs0ZeQ45EVJ2sw8AY+6wLQKyJCHz/YOAAEYe0t0xM83xJVFn0DnlwWqHwkjjIixBVey2wE7ImyLnikfIpYmHhor4sv2B6nEcSweT8tW95cSZjeU0LZp13j0L2U51TFkiNiYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t03f7CfqK5fa43LsBJ7FNZQC0PpevENZifMUSKY8RA8=; b=ToOTSBKSt7VmU3XWL5RBB3vMOGTCjebtMiXaHU49nNK2Gg/H20szJn79ujEk3wkSvdIwya89A8jMOL/f1lI3IbP8u0gEmizlYgBsIFyN84FP/Lfd8R5IaZep3OWu9OWbSSnnZf0LXBfqlRzI/2toz0IO3KsYheKx4nY1HqYBVUQqXVOoIxaeOgAovfKq89qZUnmf/1w++2Qi6LT2EoN+PYWM242MZ5L7345qmRxEjAch56UrsMIeUbS2MLTjiCOy9MqGZNIMba+ghPdfU1/GAErJmuYdHUCOnVmiUlsriuTRnXiGnK3rHK0t7ngjcOGZ23rQCQMlHZq4wU4Uwp8LZw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0025.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:2b6::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.34; Thu, 7 Sep 2023 01:04:26 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6745.034; Thu, 7 Sep 2023 01:04:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 7 Sep 2023 03:05:18 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [miwWbHwTDRtBET65rSF8GVi8cHqCERug] X-ClientProxiedBy: ZR0P278CA0096.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:23::11) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230907010538.488975-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0025:EE_ X-MS-Office365-Filtering-Correlation-Id: 42f19e42-f652-427d-0c7f-08dbaf3e617e X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 16KGMKo4OeGf8bAHAUIjVDvVQbXyG+XeTpHQ8AXwE2VzhdAWwwJJ73n7L8+uCTL4AYld9lWlmAGicSB7mByK1GMTtMGWkV1rHmC4fgOcg++qT/KytoL0xp8km4tgkA6YgUkA8GE3zGYPyJN1q2Nyl+w8njtis9Ot2cb+/Oo8suHO4UWDcMI3lWfVvSAiD6H1i2xSReYA1wrkSsuMi1xicZm4TTkSu1z3HjIry3Qs2El2f9X/KuoWoz8LjVbor8OL3WK9cCWGIQhgsX1zhwumW6YcEQrKpxYfs5OEQ71DpghiwosCiFmvgaBNkRVM89y3ZzAfwWPVhRmlSLHXjGwMxlwbbXn6yzTi8AOyIOobvrg6sMcPyukMX5NYbru3hOygbC3uqTWXjI58wzf8WBcPvHWtekCpRk3vyh1nXBy1poGyOVAdanALdMEB9dfmQyhYJBW7q1UF8eNkopL8CJrxmURhPVQMZQNUuJ1Kz1OP+CvzeV3F0LBkWbo6Roh6IFukN8g1NAzIEMT87m+XFhb9HMIJbbdFazsRQMpjuOto5NDlCwGhGRXsA5yyFAy+d3Sxr/velX4/c+AsCVrjQ2xNblzzeP4phymNqNc84ZN4hlhRUGtCZc2Ax5NkrCdZbWVd X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DuBslc7mjwrOcY6jJa8uKAa37/6/R4zX7fJ8Fl95SDde7i9eO3jLGHl3N1aXaf68Mkof6wWqiho0GqcGHkEigCfRNLgTMQpV0htgujx6DghXyx+p6RW8jmKx0jxcdIEOZpqVTl7rpc5XBhb1i7Abj6y22iICF/RaF7CHaNXamD/EVAP4p6nM0xTncZoHGRtF8YDNjKygsp4BCP9E+Qf7lH/U+p5X+TXVliw1x0zFVGhlT8hArnbNIfNftnqrVpbyfcBRqIshSwxooyPqt8tq+m/U2E0Q5TVktYU1yJ59tK/DCP+OAaOn+B0AtD9We9PVaAG3et1xA3sWhfw49PlYSgfbHhrrBWXXyTH730OdNRUxOnu8SZlkGKaj+7ezadWTho8Fq9/vDVf62k6YRAr6/MDR2s5TPCs7MhPnUKzRUSIobsFHuMeNOeSdZkOljvc2qxEPHyAsydkyeJAcSiJpPhd73HY1PpFkVhfkXHsFb+XVp/9IoT8J42TqRmVZ0T/JAD3q3YReQLIQCoVDE3kDprXzD2ZL8RXKx9IgPdBrXamYow+WUxO20f6uYTKW6w934lA5/VoTFN6QCWDoBfpdoqef7SxDVbHaaaf9bbPTQU6usIIJlsghT1QL483HvzUhFMk6tNrJhMXszqnOpLgiPWxuYoKTah4tM8B+qldnw9gdJZ0niH1sanzpk/YhPwglSzcvmUqj8YchP4QbmOQX5fwSFvZ9JGjqcFCLP0bclrnuWYiFApsOExPNIzd8KZKKfxMQjwby5jyyxRas2OGLdT3AYH49Q9hxyNtQMVz3aUoSYzLoZI+MMzl/tCzVqGG7ka3ZRn2v4RhNLft/b+W0BMOmpBgI8rE8eOA+RSibEjWz28GhQxhWIDXuo+Gdn3NMLAMEzTNvBL/dIesJ7K87e2JWXk++2RT3A7W+9FDxPLh8SCnNX3x5nZbg4aN3g4RFOOzqfFm9fXjtpZqjl9xznvrsJyQfx+/jm0fqv1d3cPOvsaypKtc92o8+GvzrQ3rph/i3ZhdUCHMShDpKRWoguUxy91HFToK8pgX3eO+wvdXBmK2CwMoIZioej3Z0C0uxGcknmLXTxGnvE7JwYqnb1laoRA6cpb+quiSjq7XnrW2BTN2lfZXba5+zrfKWV7XQR3mO/vgaTzRGTpxbm4s9g9xqsarS4p1vEhkfvsm11tnd96YxV5k+3iFRZbWzgHtXn9zqv6F17h0kjRyUS2z5PX+D+LNtd+l7nfb3zAMsaVywMZsF0n20zuvpjJrN2Jc2 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42f19e42-f652-427d-0c7f-08dbaf3e617e X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2023 01:04:26.7594 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2P250MB0025 Subject: [FFmpeg-devel] [PATCH v2 02/22] avformat/avio: Don't use incompatible function pointer type for call 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Zm17CwFjvpY6 It is undefined behaviour even in cases where it works (it works because it is only a const uint8_t* vs. uint8_t* difference). Signed-off-by: Andreas Rheinhardt --- libavformat/avio.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/libavformat/avio.c b/libavformat/avio.c index ab1c19a58d..d53da5cb0c 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -354,10 +354,15 @@ fail: } static inline int retry_transfer_wrapper(URLContext *h, uint8_t *buf, + const uint8_t *cbuf, int size, int size_min, - int (*transfer_func)(URLContext *h, - uint8_t *buf, - int size)) + int (*read_func)(URLContext *h, + uint8_t *buf, + int size), + int (*write_func)(URLContext *h, + const uint8_t *buf, + int size), + int read) { int ret, len; int fast_retries = 5; @@ -367,7 +372,8 @@ static inline int retry_transfer_wrapper(URLContext *h, uint8_t *buf, while (len < size_min) { if (ff_check_interrupt(&h->interrupt_callback)) return AVERROR_EXIT; - ret = transfer_func(h, buf + len, size - len); + ret = read ? read_func (h, buf + len, size - len) + : write_func(h, cbuf + len, size - len); if (ret == AVERROR(EINTR)) continue; if (h->flags & AVIO_FLAG_NONBLOCK) @@ -402,14 +408,16 @@ int ffurl_read(URLContext *h, unsigned char *buf, int size) { if (!(h->flags & AVIO_FLAG_READ)) return AVERROR(EIO); - return retry_transfer_wrapper(h, buf, size, 1, h->prot->url_read); + return retry_transfer_wrapper(h, buf, NULL, size, 1, + h->prot->url_read, NULL, 1); } int ffurl_read_complete(URLContext *h, unsigned char *buf, int size) { if (!(h->flags & AVIO_FLAG_READ)) return AVERROR(EIO); - return retry_transfer_wrapper(h, buf, size, size, h->prot->url_read); + return retry_transfer_wrapper(h, buf, NULL, size, size, + h->prot->url_read, NULL, 1); } int ffurl_write(URLContext *h, const unsigned char *buf, int size) @@ -420,9 +428,8 @@ int ffurl_write(URLContext *h, const unsigned char *buf, int size) if (h->max_packet_size && size > h->max_packet_size) return AVERROR(EIO); - return retry_transfer_wrapper(h, (unsigned char *)buf, size, size, - (int (*)(struct URLContext *, uint8_t *, int)) - h->prot->url_write); + return retry_transfer_wrapper(h, NULL, buf, size, size, + NULL, h->prot->url_write, 0); } int64_t ffurl_seek(URLContext *h, int64_t pos, int whence)