From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116251 invoked by alias); 20 Mar 2018 09:05:28 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 116189 invoked by uid 89); 20 Mar 2018 09:05:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy= X-HELO: mx2.suse.de From: Andreas Schwab To: Adhemerval Zanella Cc: libc-alpha@sourceware.org Subject: Re: [PATCH] getlogin_r: return early when linux sentinel value is set References: <73b04097-ef36-b597-4f7c-2e73c6eb9fa3@linaro.org> X-Yow: By MEER biz doo SCHOIN.. Date: Tue, 20 Mar 2018 09:05:00 -0000 In-Reply-To: <73b04097-ef36-b597-4f7c-2e73c6eb9fa3@linaro.org> (Adhemerval Zanella's message of "Tue, 20 Mar 2018 16:00:27 +0800") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-SW-Source: 2018-03/txt/msg00487.txt.bz2 On Mär 20 2018, Adhemerval Zanella wrote: > On 17/03/2018 00:18, Jesse Hathaway wrote: >> When there is no login uid Linux sets /proc/self/loginid to the sentinel >> value of 4294967295. If this is set we can return early and avoid >> needlessly looking up the sentinel value in any configured nss >> databases. > > The change is short enough so I think it won't require a copyright > assignment. However it does require a ChangeLog entry, could you please > resend the patch with a proper one? > >> >> diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c >> b/sysdeps/unix/sysv/linux/getlogin_r.c >> index 73ea14c8f9..43f55a2188 100644 >> --- a/sysdeps/unix/sysv/linux/getlogin_r.c >> +++ b/sysdeps/unix/sysv/linux/getlogin_r.c >> @@ -55,6 +55,12 @@ __getlogin_r_loginuid (char *name, size_t namesize) >> endp == uidbuf || *endp != '\0')) >> return -1; >> >> + /* If there is no login uid, linux sets /proc/self/loginid to the sentinel >> + value of 4294967295, so check if the value is set and return early to >> + avoid making unneeded nss lookups. */ >> + if (uid == 4294967295) >> + return ENXIO; > > I prefer to just use either (int)-1 or just 0xffffffff. That should be (uid_t) -1. Andreas. -- 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."