From patchwork Fri Sep 24 02:35:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stafford Horne X-Patchwork-Id: 45405 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 E27DF3858D29 for ; Fri, 24 Sep 2021 02:35:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E27DF3858D29 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1632450927; bh=EQaGJIqDjtWZjpSef6tTMKVRqHARvud6sdtKJgwf2Tk=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=inZTxcfho+bvaTeuwevIBXLQnabURx7dJxqM5YHFkbcCGGuilD1sG9Fe7bB4qbNdY 1D7Ps+6qCW1GVNcHf+kl54KTytyRmti9ezcFFF9fzF4RtMRF7tx7JQ+XIRSauotINp Mxtq1kAaFWp8dQOr0pJCW+no6cAwnukrop8KGsRo= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by sourceware.org (Postfix) with ESMTPS id 8DF203858D29 for ; Fri, 24 Sep 2021 02:35:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8DF203858D29 Received: by mail-pj1-x1033.google.com with SMTP id k23so5932518pji.0 for ; Thu, 23 Sep 2021 19:35:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=EQaGJIqDjtWZjpSef6tTMKVRqHARvud6sdtKJgwf2Tk=; b=wlYMuqzr7SKyG6Yz554BKpC7gIboQeYw+yySwx9LrKWpvbkZph231wcUFwmWeS4eR0 trh+6PFySv967Oa0TdHEwNBRXIlo6oBSNBkLuCElbV4rtPZ3tU0pYFgrXtOgGSoGZego GVfjIULtl7KmK2DwaUC2hZ6Arcd4PkhT3f/r8yD0IbvqBtsSlyXa3pbSOcCvQZGJHdJc 17F1JBTTo3t9PtAIJIWpn81liHGo8EkgfYXpL6q3qb6qXv5ITisySFvSKZhwnSCIpN9b lIp9DdHoikEHUCp75huOxSFqmXAeoZL20OuSh0cgPAxhjaGvxn6yNPvbntTXhTXFtBJE FTkg== X-Gm-Message-State: AOAM532a6tBXK1R1NC3yS8l8nodQO9bGy9BcoynEQ/ZEJnXubGp/NH8v 6Z1NBvNWebgaOk3hB15GT5SpvR6lUdE= X-Google-Smtp-Source: ABdhPJwEq9Y+0h4UtGXBnNOdPPcuIBJaLuqLzNxI+426IDaEAPDXwn7Cz7SOmwUnJvjB9Lcfzt5Hlg== X-Received: by 2002:a17:90b:957:: with SMTP id dw23mr8886722pjb.125.1632450905406; Thu, 23 Sep 2021 19:35:05 -0700 (PDT) Received: from localhost (g22.61-45-46.ppp.wakwak.ne.jp. [61.45.46.22]) by smtp.gmail.com with ESMTPSA id k14sm7543974pgn.85.2021.09.23.19.35.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Sep 2021 19:35:04 -0700 (PDT) To: GLIBC patches Subject: [PATCH] xsysconf: Only fail on error results and errno set Date: Fri, 24 Sep 2021 11:35:01 +0900 Message-Id: <20210924023501.2994511-1-shorne@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Stafford Horne via Libc-alpha From: Stafford Horne Reply-To: Stafford Horne Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" When testing nptl/tst-pthread-attr-affinity-fail fails with: error: xsysconf.c:33: sysconf (83): Cannot allocate memory error: 1 test failures This happens as xsysconf checks the errno after running sysconf. Internally the sysconf request for _SC_NPROCESSORS_CONF on linux allocates memory. But there is a problem, even though malloc succeeds errno is getting set to ENOMEM. POSIX allows successful calls to clobber errno. So xsysconf just checking errno is wrong. Fix xsysconf by only failing if we have an error result and errno is set. --- support/xsysconf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support/xsysconf.c b/support/xsysconf.c index 2607d3a720..fce7795417 100644 --- a/support/xsysconf.c +++ b/support/xsysconf.c @@ -29,7 +29,7 @@ xsysconf (int name) int old_errno = errno; errno = 0; long result = sysconf (name); - if (errno != 0) + if (result == -1 && errno != 0) FAIL_EXIT1 ("sysconf (%d): %m", name); errno = old_errno; return result;