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 ESMTP id 3C9D840DCB for ; Fri, 31 Dec 2021 10:40:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7A78768AFAB; Fri, 31 Dec 2021 12:40:32 +0200 (EET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070077.outbound.protection.outlook.com [40.92.70.77]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CE8B3680097 for ; Fri, 31 Dec 2021 12:40:25 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yk4JoKmbv4it05DQl7rLdCGYZ+OGoA/a5AjLWBzdnI4DXjBg07CHgISVCzf3sWf7z6td2fr4BeqdpHkb9VaybuzecOccLfWtSyOL/hCWHxeR4ieQ4aJLyivbgtiPw6cBVRiE0PHPYv/+GaGr/tTArKCXj2AFLaWh7Qd73EHFugPP+QLIVJY1nk1pmY+n3lskIWDLzuX6K5TaxAWblnF/EQNkrCXXsHtJSBZXQfUZsugTNQ6R3VtVdCPzKT7ffU1/TwrY6hiTJ1D0jILU0lLXtLA4PIg6WUSisDZWXZvRKyc75kedEapiarVpfQcvcecxlJIALneuHVmWxke1xAsEmQ== 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=YfeoX9h2DFiXr5VdeTjK6NfpvO+BFz4JXh4QZzL1hgU=; b=VAAriRmzOZWorZLO7KRX1idMeFbdH25U98Okq3amo6nvPpaObed9WJLLFhfTHdmh+iFtW4Ly6kCYtuCgEP2xJI3Ij9zpEFSX+cOv0vUk58YdhA/kmrU+NhHPGMISKrflvTGosE/r3hEfiJWxy6HeHVfGNFOzdimOvEwVuEHAK0C+jieQlSMO8fBTrxUlvRCImJvFsgookcGkV0g1S+WuDYC8iXutfm3DXLtRj9E+dSu4ZdGku+i2aOCSColhV+Jhk3vigQJJaQDK4KqRfe8jRcDwAUwLR8ogF0sbFl+AWlIH8/iDPYhBW58Qy52jLsIIMe1vJVNM+RfpQF46QptC/w== 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=YfeoX9h2DFiXr5VdeTjK6NfpvO+BFz4JXh4QZzL1hgU=; b=o/QGmrMICSbSJprQF2kQv0qL1nPpjiJwo3V6DhAmnkLRkNo45KGG3Labm4BH+QuuxGhmChPYvXkei3bODsymuilbITDLEjM01+1zH2C121r94C5gk623iqEL5yp/bViZOpuaMQJH7/tl7HbkHa7veoQ5/MxqeATu+0F+BTODTN84kO9SSe04bLNWyGNA/+vd9z7uoqNeR1l7PLn96QnWySkHW65ENGKY6ID4gjP5Gi/CAMbZrpJzCkQT27Ni3ZB0XFQH2b77qvllxXW4IluYjdkUB4M/mcprTGr+GSDVx/WlSm8O3f/Ot04l4Lxr4h+uKtHcATgEVQ5UmJHNhxl+Xg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR0302MB3191.eurprd03.prod.outlook.com (2603:10a6:209:19::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Fri, 31 Dec 2021 10:40:24 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%6]) with mapi id 15.20.4844.014; Fri, 31 Dec 2021 10:40:24 +0000 Message-ID: Date: Fri, 31 Dec 2021 11:40:23 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20211227002613.25069-1-cus@passwd.hu> From: Andreas Rheinhardt In-Reply-To: <20211227002613.25069-1-cus@passwd.hu> X-TMN: [sKjn8Fgxji9uQ2JL56XnD1UeH99cGH3c] X-ClientProxiedBy: AM3PR03CA0073.eurprd03.prod.outlook.com (2603:10a6:207:5::31) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 949e3830-bfee-46ac-a48c-08d9cc49f3cc X-MS-TrafficTypeDiagnostic: AM6PR0302MB3191:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 22KYKg+OsuLCXgaZxLG5GdQTXLor6LINUAgys+KXmV0OsVSm2Ex4+oMloJxW0ULkEwliZ24rG5zNenzpn+TC1FuZLTw805IkKjNQRhFeZ4rPt1jZDlstk/yH7gFR6teUagGyVi6xQdcwTyf0BVFj/U97crIr8pXsg3rfCHo5jeBuZDRnQ4mGlGtTo9/Ck+0tjFpdx7EUauzAvrVtQHDA4yqDzzMjeyx+237iIdI2PENNSfEAvBniQ20WLiua7IU5C/rDCWbDa2zTJV+6dN7HdPYOJftKjQDeseS1D3eq4Xn+MxtIJb3tjTBVjrAIUEKSZbUSCFN0xtCkabnnK3qPhpiverDV/OZn06Edg6MnegklNESlMC7CaD/IgUZP35CMMLGN9szbbp2sV11c9MTGKw1dzbNX1H4ZAONMyvmSikBRXILrIaC/sH7/jBKp55RTRH65uOYFWN26lB/mJqOEFDtRfN2lPdiuJsARj6g+/1CwiV4RnyX1G+C56PJF/A2maaIKRwLKQUYqMJeCkT42qdbeBe8LK8fEsAEBB9eS8T65IzWKdChjF+IcDbwRw/8pLMxTO7ilBR2SJhWIstj+wQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dnp3Z1Q5d0hieGlsbTVpZ21ETGp3cXZiWDY2VXNmZzFGUG8xY1dld3BSS3ht?= =?utf-8?B?SEtncXYyS3hPb3VWb3RXSjZGcHNCZzg0RTlyNS95bHZZeGhGV1I4bURGcnhv?= =?utf-8?B?ckhrYzF2b0dKU3FRSEE1K1RhbmRBQ2hkMTNLM3h5Tll4UlVmS1lJblErNGln?= =?utf-8?B?MjR6Zy9wS2FlOFlqOFlKeGl1Y28wMDRNd2k1aEJaRkxsOW8vV2NyUS9vUTlI?= =?utf-8?B?NTljU05ZdGJlWHQyTGRPc1FuLzh6RTJsNVp3dGNKMFpSLzZ3M2xzU3JwTE4z?= =?utf-8?B?eTJGUy9zbzdBL3c3dnpWbXVMOU4rc3hmTVBZd2E2Zk51L2RJUS9xcCtRWUNW?= =?utf-8?B?SG1Od1JTaWFzclZDdXdSNzdJNThPOGhoYkNtMzVoZk9EU1RIY1JTRm55czNI?= =?utf-8?B?cWNDNEp5RXM4Q09qelU5clRzSVZSMm5SNFM5OWtXYiszeFc0aGR2WGNqbkZj?= =?utf-8?B?MEJZRFRSVzVYaTVnTlQrOFpKZjc4cXNtMFQycUFCS2xWdVVkL2tFUUF3bUxr?= =?utf-8?B?RUtWd2ZoTkpHcjBid1M3YnNwNnlrWlRreDBJYURudjVRQ1NGdDlEalg3eGpR?= =?utf-8?B?N0pzK1J0d2g2QWU2bnU0MzlCdjZZdFlTdzVOc200R3dtTDYzZFlVOXpDMnBX?= =?utf-8?B?VGo0QkMvZGFMNlBkblBzdkxUa3AzclJYS0JIR0x0ekwzRC9MaUNHVHFjWTUy?= =?utf-8?B?RzVkTkVWRENVYXlSeDFta3hBa1EyUXJYekZyZG9icDJYYjdoTEh4VjlsWTRM?= =?utf-8?B?MVJlcWs1Lzhxem1yOWpGY0xqKzZjSTBWckZ5Q3FSRG1sZ1dabzZDRmxWbEls?= =?utf-8?B?dE0rZTJndWNVQW14WmVDUXJNRnJtMHoxOU9GTEQ1QThxV0V6YWM3RTk1cjJ5?= =?utf-8?B?M2dhZUpONmRYd0Q5SDk4Tm5Fc1pNb1lCUXBuQndPVStjY1psTk4zRVQ5NDll?= =?utf-8?B?MmsrdXJrd2ZneGNwQVZMazB4aEVpUUlRdGZNd0Q1VHAyS0JMRDJMWFdPUWtT?= =?utf-8?B?RGovbWMvcTQvem94S2ZFdm56ay9NUmprcDJxbFE2WjVZTGJsNk5BZ29saEFL?= =?utf-8?B?cVk0bnA0NU1tQlhvdzVzaFJMZkpqZGN0eW42NjZVZEFSanBBbDZ4T0hYN21W?= =?utf-8?B?VlhCY2M4NjRxUnpKNVdVMFhWNTU1VVlPY1dUWVlodGJrcThrWk1pTDAzS3A4?= =?utf-8?B?MVJscDU1VVIvZTlmYmRhaHJGYkpsWXVWVDFoRzVwa1dsQ0FCOXhZbGxKTmZl?= =?utf-8?B?VWpFVWRUYVpJeGk2OTEwTmUwNTJBWHJMNUlKZTF1V1RyY2wrUT09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 949e3830-bfee-46ac-a48c-08d9cc49f3cc X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2021 10:40:24.6633 (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: AM6PR0302MB3191 Subject: Re: [FFmpeg-devel] [PATCH 1/5] avformat/aviobuf: set AVIOContext->error on bprint buffer ENOMEM 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 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: Marton Balint: > This makes sure the error condition is kept in AVIOContext even if the user > does not check the return value of avio_read_to_bprint or > ff_read_line_to_bprint. > > Signed-off-by: Marton Balint > --- > libavformat/aviobuf.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c > index 29d4bd7510..6f8a822ee3 100644 > --- a/libavformat/aviobuf.c > +++ b/libavformat/aviobuf.c > @@ -875,8 +875,10 @@ static int64_t read_string_to_bprint_overwrite(AVIOContext *s, AVBPrint *bp, > if (ret < 0) > return ret; > > - if (!av_bprint_is_complete(bp)) > + if (!av_bprint_is_complete(bp)) { > + s->error = AVERROR(ENOMEM); > return AVERROR(ENOMEM); > + } > > return bp->len; > } > @@ -1351,8 +1353,10 @@ int avio_read_to_bprint(AVIOContext *h, AVBPrint *pb, size_t max_size) > if (ret <= 0) > return ret; > av_bprint_append_data(pb, buf, ret); > - if (!av_bprint_is_complete(pb)) > + if (!av_bprint_is_complete(pb)) { > + h->error = AVERROR(ENOMEM); > return AVERROR(ENOMEM); > + } > max_size -= ret; > } > return 0; > I don't really see the point of this: It is not a real read error that should stick to the AVIOContext (which can still be used afterwards without any issue). If the user does not check the errors, then the user has no one to blame but himself for missing errors. - Andreas PS: If the AVBPrint API had a documented way of marking data as used, one could avoid those stack buffers and use the AVBPrint buffer directly with av_bprint_get_buffer(). (Marking data as used would be equivalent to incrementing len and ensuring that the buffer stays zero-terminated.) If this were done, no already read data would be lost in case of a later allocation failure. _______________________________________________ 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".