From patchwork Wed Apr 26 15:22:44 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: 68314 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 68BC5385841C for ; Wed, 26 Apr 2023 15:23:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 68BC5385841C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682522601; bh=skTXpcOlXza34CdSIB31+5viukwZu9ZqbTYW5F4GMTo=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=UHhAwWRq0j3YlWBrfWyTVCd9FzT/7o3jfJuLMJYhoIIrr5DROgNh6lgFu/D5IowKU MMIR9IZt5/8SiaBQN7qrAL8t81+q+7JikVY6obHkkAqNuNaV60klgy9tbJ9xcPC/vs 4IFjCNbMheEek5LDA6L7UaXZof25fUMx23jibWak= 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.133.124]) by sourceware.org (Postfix) with ESMTPS id 9F5523858C53 for ; Wed, 26 Apr 2023 15:22:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9F5523858C53 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-258-wYrnt8lkMzmfPhr9qiVumg-1; Wed, 26 Apr 2023 11:22:54 -0400 X-MC-Unique: wYrnt8lkMzmfPhr9qiVumg-1 Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-5ef2585c1beso42251316d6.2 for ; Wed, 26 Apr 2023 08:22:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682522572; x=1685114572; 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=skTXpcOlXza34CdSIB31+5viukwZu9ZqbTYW5F4GMTo=; b=LmT3hIVMD8gAFpe/btE/7m6122JhyPdgpYaE58n/89y3cxzmOAA9dABo0Y8LDfsJiN x63y+YKtOBcEhKFJXEn/EfqDz2E/saQPCQMECyBVAND+6u3QCZTOnmSysiwll/aQkDXR jaZXUyURCgLYJJMl4tDchPWVmup6R5ydVuxIiZgJ68gbxTpWbCgvqPNEBccY45T+shdM RFGuBJ8wvn8w1gYDdapAlRYZcKopI+ykNbLqvnUsREJiiIs/G6DTIO92+0Oro7lXLeJD SAx+/pU038lLut3+iNuaisAcA9cmVm+WOqYya37jMVEp/wMR8fj8CuekypU2AX4aSz79 7mxQ== X-Gm-Message-State: AAQBX9fPak9q0m7wxBibxiSqNmrsb6zYGnBqQ9PRSs9cQqdsxjmQzpC3 u55NvHh58vDG2F0QLyiyXHSd2LiL97sGKBCf+CrJD6V1eU3n56a+vpcS74HVmiilrqqzxe0c4zU 9mDC22qIB8+ZD1/GdYg6IOcwzpo1EmuvGhFng3lTwrzJdt7LFlWBfoIB1u8twnPpaPWFKJj1jwL Prg3u5 X-Received: by 2002:a05:6214:2aad:b0:5cc:277c:b5e with SMTP id js13-20020a0562142aad00b005cc277c0b5emr34727621qvb.33.1682522572636; Wed, 26 Apr 2023 08:22:52 -0700 (PDT) X-Google-Smtp-Source: AKy350Yd4IubjkT9XCQOrXlnHAgenpPSwllbPdpLd3MCq/lBY4iWxWEo5aF9ybmo/rnVXyCOyFIg/Q== X-Received: by 2002:a05:6214:2aad:b0:5cc:277c:b5e with SMTP id js13-20020a0562142aad00b005cc277c0b5emr34727592qvb.33.1682522572379; Wed, 26 Apr 2023 08:22:52 -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 17-20020a370411000000b0074e19c4daeasm5203020qke.5.2023.04.26.08.22.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Apr 2023 08:22:52 -0700 (PDT) To: libc-alpha@sourceware.org Cc: Joe Simmons-Talbott Subject: [PATCH v2] time: Remove alloca() from getdate Date: Wed, 26 Apr 2023 11:22:44 -0400 Message-Id: <20230426152244.1981882-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" Changes to v1: * Add error handling for __strndup() --8<-- Reduce the usage of alloca() to the bare minimum to avoid the potential for stack overflow. Use __strndup to simplify the code. Reviewed-by: Siddhesh Poyarekar --- time/getdate.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/time/getdate.c b/time/getdate.c index c5c8378707..2f0ebbe097 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,14 @@ __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 = __strndup(string, inlen); + if (instr == NULL) { - instr = malloc (inlen + 1); - if (instr == NULL) - { - fclose (fp); - return 6; - } - using_malloc = true; + fclose(fp); + return 6; } - memcpy (instr, string, inlen); - instr[inlen] = '\0'; + string = instr; - - if (!using_malloc) - instr = NULL; } line = NULL;