[{"id":3686967,"web_url":"http://patchwork.ozlabs.org/comment/3686967/","msgid":"<mvm7bpg6cwr.fsf@suse.de>","list_archive_url":null,"date":"2026-05-06T10:38:28","subject":"Re: [PATCH v3 2/2] libio: Ignore doallocate for open_memstream and\n open_wmemstream [BZ #34019]","submitter":{"id":37,"url":"http://patchwork.ozlabs.org/api/people/37/","name":"Andreas Schwab","email":"schwab@suse.de"},"content":"On Mai 06 2026, Gao Xiang wrote:\n\n> diff --git a/libio/tst-wmemstream-setvbuf-doallocate.c b/libio/tst-wmemstream-setvbuf-doallocate.c\n> new file mode 100644\n> index 0000000000..595a716db5\n> --- /dev/null\n> +++ b/libio/tst-wmemstream-setvbuf-doallocate.c\n> @@ -0,0 +1,64 @@\n> +/* Test setvbuf on open_wmenstream, BZ #34019.\n> +   Copyright (C) 2026 Free Software Foundation, Inc.\n> +   This file is part of the GNU C Library.\n> +\n> +   The GNU C Library is free software; you can redistribute it and/or\n> +   modify it under the terms of the GNU Lesser General Public\n> +   License as published by the Free Software Foundation; either\n> +   version 2.1 of the License, or (at your option) any later version.\n> +\n> +   The GNU C Library is distributed in the hope that it will be useful,\n> +   but WITHOUT ANY WARRANTY; without even the implied warranty of\n> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n> +   Lesser General Public License for more details.\n> +\n> +   You should have received a copy of the GNU Lesser General Public\n> +   License along with the GNU C Library; if not, see\n> +   <https://www.gnu.org/licenses/>.  */\n> +\n> +#include <stdio.h>\n> +#include <stdlib.h>\n> +#include <wchar.h>\n> +#include <support/check.h>\n> +\n> +static int\n> +do_test (void)\n> +{\n> +  /* Regression test for setvbuf doallocate on open_wmemstream.\n> +     This test cover the _IO_setvbuf path for:\n> +\n> +     setvbuf (stream, NULL, _IOFBF, 0)\n> +\n> +     This path may call _IO_DOALLOCATE and return without invoking\n> +     the stream setbuf hook. For open_wmemstream, the generic wide\n> +     doallocate hook must not replace the growable  result buffer.  */\n> +\n> +  wchar_t *wbuf = NULL;\n> +  size_t wlen = 0;\n> +  FILE *fp = open_wmemstream (&wbuf, &wlen);\n\nIf you base the test on libio/tst-memstream.h you can test both narrow\nand wide streams with the same test.","headers":{"Return-Path":"<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":["incoming@patchwork.ozlabs.org","libc-alpha@sourceware.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","libc-alpha@sourceware.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=PlyfNNMc;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=2fLMiiAT;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=09ounrHQ;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=1ZLUUr2o;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=PlyfNNMc;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=2fLMiiAT;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=09ounrHQ;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=1ZLUUr2o","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=suse.de","sourceware.org; spf=pass smtp.mailfrom=suse.de","sourceware.org;\n arc=none smtp.remote-ip=195.135.223.130","smtp-out1.suse.de;\n dkim=pass header.d=suse.de header.s=susede2_rsa header.b=09ounrHQ;\n dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=1ZLUUr2o"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g9X6P5bW9z1yJq\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 20:43:25 +1000 (AEST)","from vm01.sourceware.org (localhost [IPv6:::1])\n\tby sourceware.org (Postfix) with ESMTP id A9F414BA7996\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  6 May 2026 10:43:23 +0000 (GMT)","from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])\n by sourceware.org (Postfix) with ESMTPS id 2C99C4BA2E2C\n for <libc-alpha@sourceware.org>; Wed,  6 May 2026 10:38:30 +0000 (GMT)","from hawking.suse.de (unknown\n [IPv6:2a07:de40:a101:3:92b1:1cff:fe69:ddc])\n by smtp-out1.suse.de (Postfix) with ESMTP id C52416B2AE;\n Wed,  6 May 2026 10:38:28 +0000 (UTC)","by hawking.suse.de (Postfix, from userid 17005)\n id B3D9D4A0563; Wed,  6 May 2026 12:38:28 +0200 (CEST)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org A9F414BA7996","OpenDKIM Filter v2.11.0 sourceware.org 2C99C4BA2E2C"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 2C99C4BA2E2C","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 2C99C4BA2E2C","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1778063916; cv=none;\n b=dkub4CxbqTnIIUZehN5hJqW8ClGEBaxCv/a4fp+0ePge4266EjBAwT1Ah78xwpEe+8rTi8XhDNdKIDkv99+REcwoyS8BrPohX7Cmq12ybwHdOVBTH6oUvJNm5GnTVTj+hfS/u37Sm608wdzMhas/BkAP1I9cJpOBft4vb44R1DY=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1778063916; c=relaxed/simple;\n bh=F/lDBi7jYPBkqG1QkHMXZZZEV8/MAgld/J6WnMtc9V0=;\n h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From:\n To:Subject:Date:Message-ID:MIME-Version;\n b=QKtix1aba848j0Y9YD4XoXkYIQKMe9g8gEAaXlV327aeDvzttvfEfAMnbGl9kmIi71zzOsC+HjpM9/z/X7vGI6crGCB3iN66u9PhGCRbEzkgWLduE0jDTgm3diXZY58+VoWpVdTJ5iefAJGubnswoejp6mo52/6TjJNru0BtHxI=","ARC-Authentication-Results":"i=1; sourceware.org;\n dkim=pass (1024-bit key, unprotected)\n header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa\n header.b=PlyfNNMc;\n dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=2fLMiiAT;\n dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=09ounrHQ;\n dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=1ZLUUr2o","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1778063909;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=x6GJ3+QhAssbJMKvDBugErRJ9iOvg2BaLfOlWjT+Kh8=;\n b=PlyfNNMc1UF0KY5GhK8aPZ9JzE/sXq49jSK7OFlY3UZw6qEAGgg7Wu49/U1yojzHX5dbF6\n Q4sbvnS0nMBa6Ld67k/xDVN45QSI81OSl3m/GdGrJtU0xlrRYYg5FWjieSqfKJVWedM4gg\n WfbzKTyBmzB6aN/67Le/a+174E1GMEk=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1778063909;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=x6GJ3+QhAssbJMKvDBugErRJ9iOvg2BaLfOlWjT+Kh8=;\n b=2fLMiiATD2PHgjCK9EU02fpdfULzSmGJcEEj2el9Bsh4PeZe2KHjpI6Kmo3oABBCv4WQ2+\n d+rMfEtID/Ff9xCA==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1778063908;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=x6GJ3+QhAssbJMKvDBugErRJ9iOvg2BaLfOlWjT+Kh8=;\n b=09ounrHQk7Oqus4rs/2TQIY2ATxsxzDYy0uIDyJYiJn98dq7wpfiMQ6LnxSbUnkXDGNhW/\n 2o+sAe3JrXuqxf+z+jSdDCUIVRpZ0Y/bosLWC7OMtRJye19wSEna6hT0TzpKOpQShZOZpj\n +AXLCf0QnxRxozypGQS2v5XP5Lrvx3I=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1778063908;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=x6GJ3+QhAssbJMKvDBugErRJ9iOvg2BaLfOlWjT+Kh8=;\n b=1ZLUUr2osl8v/JFsC5jLbcEdGXdTqQwLZOjcV+Bgy+mz6wkVmJafJrs7NwtxP1qkkP8t3I\n rz904YlEvamXwgDQ=="],"From":"Andreas Schwab <schwab@suse.de>","To":"Gao Xiang <gaoxiang@kylinos.cn>","Cc":"libc-alpha@sourceware.org,  Adhemerval Zanella Netto\n <adhemerval.zanella@linaro.org>,  Rocket Ma <marocketbd@gmail.com>","Subject":"Re: [PATCH v3 2/2] libio: Ignore doallocate for open_memstream and\n open_wmemstream [BZ #34019]","In-Reply-To":"<20260506102327.24801-2-gaoxiang@kylinos.cn> (Gao Xiang's message\n of \"Wed, 6 May 2026 18:23:27 +0800\")","References":"<e732abd8-6c6e-4e89-8365-5e20dc191898@linaro.org>\n <20260506102327.24801-1-gaoxiang@kylinos.cn>\n <20260506102327.24801-2-gaoxiang@kylinos.cn>","Date":"Wed, 06 May 2026 12:38:28 +0200","Message-ID":"<mvm7bpg6cwr.fsf@suse.de>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","Content-Type":"text/plain","X-Spamd-Result":"default: False [15.28 / 50.00]; SPAM_FLAG(5.00)[];\n NEURAL_SPAM_LONG(3.50)[1.000]; BAYES_HAM(-3.00)[100.00%];\n NEURAL_SPAM_SHORT(2.99)[0.996];\n HFILTER_HOSTNAME_UNKNOWN(2.50)[]; RDNS_NONE(2.00)[];\n ONCE_RECEIVED(1.20)[];\n HFILTER_HELO_IP_A(1.00)[hawking.suse.de];\n HFILTER_HELO_NORES_A_OR_MX(0.30)[hawking.suse.de];\n R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n RCVD_NO_TLS_LAST(0.10)[]; MIME_GOOD(-0.10)[text/plain];\n MX_GOOD(-0.01)[]; TO_DN_SOME(0.00)[];\n DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[];\n FUZZY_RATELIMITED(0.00)[rspamd.com];\n DIRECT_TO_MX(0.00)[Gnus/5.13 (Gnus v5.13)];\n FREEMAIL_ENVRCPT(0.00)[gmail.com];\n SPAMHAUS_XBL(0.00)[2a07:de40:a101:3:92b1:1cff:fe69:ddc:from];\n DNSWL_BLOCKED(0.00)[2a07:de40:a101:3:92b1:1cff:fe69:ddc:from];\n FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[];\n TO_MATCH_ENVRCPT_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[];\n RCPT_COUNT_THREE(0.00)[4]; RCVD_COUNT_ONE(0.00)[1];\n FREEMAIL_CC(0.00)[sourceware.org,linaro.org,gmail.com];\n DKIM_TRACE(0.00)[suse.de:+];\n DBL_BLOCKED_OPENRESOLVER(0.00)[hawking.suse.de:helo, suse.de:dkim,\n suse.de:email, suse.de:mid, gnu.org:url]","X-Spamd-Bar":"+++++++++++++++","X-Rspamd-Queue-Id":"C52416B2AE","X-Rspamd-Action":"add header","X-Rspamd-Server":"rspamd2.dmz-prg2.suse.org","X-Spam":"Yes","X-BeenThere":"libc-alpha@sourceware.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Libc-alpha mailing list <libc-alpha.sourceware.org>","List-Unsubscribe":"<https://sourceware.org/mailman/options/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe>","List-Archive":"<https://sourceware.org/pipermail/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-request@sourceware.org?subject=help>","List-Subscribe":"<https://sourceware.org/mailman/listinfo/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>","Errors-To":"libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org"}}]