From patchwork Wed Apr 26 13:57:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joe Simmons-Talbott X-Patchwork-Id: 68312 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id ECBA83858C53 for ; Wed, 26 Apr 2023 13:57:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ECBA83858C53 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682517466; bh=rC57WbF3d9EW4w4+WZf+MqsdslBnorb+XqFm2EuTaSI=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=iPt6uBD+Pq4LwoWBLzkEVtYZiN14UwFMHnVrzBBRwnD6uD5UI3TONOneVBACfVPV2 sQ0z9PKLe32pNRoCReDEm8V7OBxGuGMU3M9dx01Jj3M6EvB3CEbio52Tc7Xg6xeISm WuR3CUWNWWSu1RgBudEQt0og5uGviXfcUjBqqUX0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id DEEFC3858C53 for ; Wed, 26 Apr 2023 13:57:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DEEFC3858C53 Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-671-gM-bZZP6P7CeEtJoxICzUQ-1; Wed, 26 Apr 2023 09:57:22 -0400 X-MC-Unique: gM-bZZP6P7CeEtJoxICzUQ-1 Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-5ef4872809aso46978496d6.2 for ; Wed, 26 Apr 2023 06:57:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682517441; x=1685109441; 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=rC57WbF3d9EW4w4+WZf+MqsdslBnorb+XqFm2EuTaSI=; b=Zpcl9gyyBv1+VwGOodDN7Efapu8boZg5ZHaDK6JFHsWB+kkAsFijLtM0i5AZy6UDSR 6p5P2a7WF8pCOQPP7MLL7yXXUjwruoSPXQnZXdRn1d+hgTSkikXFqep5QBdkYqlcWAxk wA1+axK7SOvkPim6GlhKoG+Q1Y27ZIhTFW+dIVMC3Cl/pkt6vZV47TUGbbaIoj7T4WvE wWLZ2eBxsl75ga6Ju+7u307OIvJu1lIlANxvO5sri69bRREMy91WIvd4tnsusFGIUWkR Oa8HAExJ2E9E4/c3zsorWF3+jT+jHS0mf/gzs5m0KDdhu7YkaEPNfQAgT2TgvkNuyOBQ Y4vQ== X-Gm-Message-State: AAQBX9fINbGVFG+x275WDd6YgS4f2B5yK+YM522joMsFmnNDcQ2XyZzx IaiFi0AbkZtYsCt36I3DouE/WWkLPzIddapSVSUfH1Fl1nHLKUUCoLKy1ph7DywJwVFxBjcOcoL IJAC9Sl9H3zLBo8vb+pIQtXGMjUoKkZHxqBoDlzuIbNg1rozq8wcDQBcuZ76wJPQoM3D7EYVOUE 6IndAM X-Received: by 2002:a05:6214:124c:b0:5cd:1adc:30e2 with SMTP id r12-20020a056214124c00b005cd1adc30e2mr37047111qvv.11.1682517441559; Wed, 26 Apr 2023 06:57:21 -0700 (PDT) X-Google-Smtp-Source: AKy350YGsbbXMvO85G29FTkjBcVNrMEAAcpx3mcbEw7ELLMsyEEaBTgxT2J+fZOBtPjrWDHj4tX4gw== X-Received: by 2002:a05:6214:124c:b0:5cd:1adc:30e2 with SMTP id r12-20020a056214124c00b005cd1adc30e2mr37047086qvv.11.1682517441293; Wed, 26 Apr 2023 06:57:21 -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 g15-20020a0cdf0f000000b0061668627a02sm217495qvl.31.2023.04.26.06.57.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Apr 2023 06:57:20 -0700 (PDT) To: libc-alpha@sourceware.org Cc: Joe Simmons-Talbott Subject: [PATCH] time: Remove alloca() from getdate Date: Wed, 26 Apr 2023 09:57:17 -0400 Message-Id: <20230426135717.2512491-1-josimmon@redhat.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Joe Simmons-Talbott via Libc-alpha From: Joe Simmons-Talbott Reply-To: Joe Simmons-Talbott Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Reduce the usage of alloca() to the bare minimum to avoid the potential for stack overflow. Use __strndup to simplify the code. --- time/getdate.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/time/getdate.c b/time/getdate.c index c5c8378707..204308da1e 100644 --- a/time/getdate.c +++ b/time/getdate.c @@ -26,7 +26,6 @@ #include #include #include -#include #define TM_YEAR_BASE 1900 @@ -153,26 +152,8 @@ __getdate_r (const char *string, struct tm *tp) if (inlen < oldlen) { - bool using_malloc = false; - - if (__libc_use_alloca (inlen + 1)) - instr = alloca (inlen + 1); - else - { - instr = malloc (inlen + 1); - if (instr == NULL) - { - fclose (fp); - return 6; - } - using_malloc = true; - } - memcpy (instr, string, inlen); - instr[inlen] = '\0'; + instr = __strndup(string, inlen); string = instr; - - if (!using_malloc) - instr = NULL; } line = NULL;