From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by sourceware.org (Postfix) with ESMTPS id 1FA8D3940CED for ; Wed, 27 Sep 2023 15:55:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1FA8D3940CED Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id 24D89218D5; Wed, 27 Sep 2023 15:55:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1695830105; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=bk1R6pu3e06FYDbjEzPoIO1OgqOhbxLI1F/ZRpRKZYs=; b=ZW0DDPgdqotdnXwDDuSONyDc7ignvsEAsJQ36M4IQBFic/PO771AwWnotE05padc2dOYC+ p5kFU01tg1Z2gJwziRdZQA1Z+sX25j/exq2kvu6uKaU3aml80GHnCZQMSZ0W61ADNI9z7d K9VJINAxOPwCCnnlqbwcDIsKo7fW57s= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1695830105; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=bk1R6pu3e06FYDbjEzPoIO1OgqOhbxLI1F/ZRpRKZYs=; b=fpkFF/U9U0rRPZTsnOclYq6KVLjtWtTLJPmkRIKaCl0EB9IXi0LEvDjXALNyt7BKHDpBfi QYAACx2zxQsCl6BQ== Received: from hawking.nue2.suse.org (unknown [10.168.4.11]) by relay2.suse.de (Postfix) with ESMTP id 08EB32C145; Wed, 27 Sep 2023 15:55:05 +0000 (UTC) Received: by hawking.nue2.suse.org (Postfix, from userid 17005) id 122E44A03E5; Wed, 27 Sep 2023 17:55:05 +0200 (CEST) From: Andreas Schwab To: Joe Simmons-Talbott Cc: libc-alpha@sourceware.org Subject: Re: [PATCH] nss: Get rid of alloca usage in db-XXX In-Reply-To: <20230927153831.2638026-1-josimmon@redhat.com> (Joe Simmons-Talbott's message of "Wed, 27 Sep 2023 11:38:29 -0400") References: <20230927153831.2638026-1-josimmon@redhat.com> X-Yow: I was in EXCRUCIATING PAIN until I started reading JACK AND JILL Magazine!! Date: Wed, 27 Sep 2023 17:55:05 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-9.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Sep 27 2023, Joe Simmons-Talbott wrote: > Replace alloca usage with a scratch_buffer. > --- > nss/nss_db/db-XXX.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/nss/nss_db/db-XXX.c b/nss/nss_db/db-XXX.c > index 0ce730db5a..2df31a8077 100644 > --- a/nss/nss_db/db-XXX.c > +++ b/nss/nss_db/db-XXX.c > @@ -18,6 +18,7 @@ > > #include > #include > +#include > #include > #include > #include > @@ -126,6 +127,8 @@ enum nss_status \ > char *buffer, size_t buflen, int *errnop H_ERRNO_PROTO)\ > { \ > struct parser_data *data = (void *) buffer; \ > + struct scratch_buffer sbuf; \ > + scratch_buffer_init (&sbuf); \ > \ > if (buflen < sizeof *data) \ > { \ > @@ -160,7 +163,13 @@ enum nss_status \ > else \ > { \ > const size_t size = (keysize) + 1; \ > - key = alloca (size); \ > + if (!scratch_buffer_set_array_size (&sbuf, 1, size)) \ > + { \ > + H_ERRNO_SET (NETDB_INTERNAL); \ > + status = NSS_STATUS_TRYAGAIN; \ > + return status; \ That needs to set *errnop and goto out. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."