From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 66A903858D33 for ; Mon, 15 May 2023 19:08:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 66A903858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1684177692; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UQESIK49hzJ6gR/eytC2BteIJLrA/rKNtde99iim8Ik=; b=BvSsG4CORKKJnBWBvBHqSA4884CbPTR9Bv1gj/nYj1wN8cc6oQGJKxvub0P7gizKk8GKUj 0A/XCtmBeQjuM2WpEMB2K6/2YM/1AI3AKTcUTc4A74lHPZtJeryGqzrNChSBPZp6NxuHJj zHoj32YV3doK6psUWfs39igH7AduqJw= Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-448-e9wH2EhxMK6rkAba3rGOOQ-1; Mon, 15 May 2023 15:08:11 -0400 X-MC-Unique: e9wH2EhxMK6rkAba3rGOOQ-1 Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-61b7ab3a89cso145276466d6.1 for ; Mon, 15 May 2023 12:08:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684177690; x=1686769690; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=UQESIK49hzJ6gR/eytC2BteIJLrA/rKNtde99iim8Ik=; b=g0aLwEJx+pXHufAsS+7i2Iz1sgSgOE0TXcem9iYc2jsFQ1YP3i17vDiqjHJxh1+VGc rBEGf+HwlsOUxdueB1Y0KLLX9zaODKukwOOWbFHeYobEpQSsAgqydkpgW0/MFfVf/8kS hJTEnM/31D1lq/wOqvl3ebeF6zrNdH6mz8SDMIo27EH+AvELGFs7w+kvdz9SvR+2btEo I31WOs4H4azKVm9cN6Cm010kELRX+ynjB4ABeSezuDfBt38uVBdaf12Ud78B1PxLDOXj uuIMNQ19s6CCSGZBbSZwaDk/xDQ4iQmCsrl2UQWkG0tW7mmEvGZsywO2Su/nwwE5Po8n wvqA== X-Gm-Message-State: AC+VfDyYslYqRZdm05dFBibhDCUKuBW+hhOm9nUydzB6TW4Dmg2dsls5 rJZMxC55RrxcuHqFJPgLK5ghBfzOd1bnxNRcb1Tf7zneVc7WuPRlrdEFngY33y9trPk2gHFccsn laH47Eh0B9Z4tIRaEBvr5Pp4YP4+K2zmDh27jlspzSPD9rspcdG333vS6QGUxQz64wtfMjm6Ad9 oAYToy X-Received: by 2002:ad4:5b86:0:b0:621:451b:6e1c with SMTP id 6-20020ad45b86000000b00621451b6e1cmr35435908qvp.6.1684177690312; Mon, 15 May 2023 12:08:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4N5rzTtlLDPbwUBB1WKPDyLV24xQra3w8rlQTXMK7+j16QEZ/C7UsKG1xjn+uQ4UJ01d1NRg== X-Received: by 2002:ad4:5b86:0:b0:621:451b:6e1c with SMTP id 6-20020ad45b86000000b00621451b6e1cmr35435873qvp.6.1684177689993; Mon, 15 May 2023 12:08:09 -0700 (PDT) Received: from oak.redhat.com (c-71-206-142-238.hsd1.va.comcast.net. [71.206.142.238]) by smtp.gmail.com with ESMTPSA id a2-20020a05620a16c200b007591b80c686sm774qkn.120.2023.05.15.12.08.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 May 2023 12:08:09 -0700 (PDT) From: Joe Simmons-Talbott To: libc-alpha@sourceware.org Cc: Joe Simmons-Talbott Subject: [PATCH v2] setsourcefilter: Use malloc() rather than alloca(). Date: Mon, 15 May 2023 15:08:06 -0400 Message-Id: <20230515190806.2770627-1-josimmon@redhat.com> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE 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: To prevent possible stack overflow use malloc() rather than alloca(). --- Changes to v1: - don't save and restore errno around free() sysdeps/unix/sysv/linux/setsourcefilter.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/sysdeps/unix/sysv/linux/setsourcefilter.c b/sysdeps/unix/sysv/linux/setsourcefilter.c index 538f4de696..2823168d34 100644 --- a/sysdeps/unix/sysv/linux/setsourcefilter.c +++ b/sysdeps/unix/sysv/linux/setsourcefilter.c @@ -16,7 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include #include #include #include @@ -34,17 +33,11 @@ setsourcefilter (int s, uint32_t interface, const struct sockaddr *group, /* We have to create an struct ip_msfilter object which we can pass to the kernel. */ size_t needed = GROUP_FILTER_SIZE (numsrc); - int use_alloca = __libc_use_alloca (needed); struct group_filter *gf; - if (use_alloca) - gf = (struct group_filter *) alloca (needed); - else - { - gf = (struct group_filter *) malloc (needed); - if (gf == NULL) - return -1; - } + gf = (struct group_filter *) malloc (needed); + if (gf == NULL) + return -1; gf->gf_interface = interface; memcpy (&gf->gf_group, group, grouplen); @@ -63,12 +56,7 @@ setsourcefilter (int s, uint32_t interface, const struct sockaddr *group, else result = __setsockopt (s, sol, MCAST_MSFILTER, gf, needed); - if (! use_alloca) - { - int save_errno = errno; - free (gf); - __set_errno (save_errno); - } + free (gf); return result; } -- 2.39.2