Re: thread-safety: getpwuid_r() - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: thread-safety: getpwuid_r()
Date
Msg-id 564be42e-f77b-4ba7-b726-a241a8e3a6ed@iki.fi
Whole thread Raw
In response to Re: thread-safety: getpwuid_r()  (Heikki Linnakangas <hlinnaka@iki.fi>)
Responses Re: thread-safety: getpwuid_r()
List pgsql-hackers
On 26/08/2024 20:38, Peter Eisentraut wrote:
> On 24.08.24 15:55, Heikki Linnakangas wrote:
>> Come to think of it, the pg_get_user_name() function is just a thin 
>> wrapper around getpwuid_r(). It doesn't provide a lot of value. 
>> Perhaps we should remove pg_get_user_name() and pg_get_user_home_dir() 
>> altogether and call getpwuid_r() directly.
> 
> Yeah, that seems better.  These functions are somewhat strangely 
> designed and as you described have faulty error handling.  By calling 
> getpwuid_r() directly, we can handle the errors better and the code 
> becomes more transparent.  (There used to be a lot more interesting 
> portability complications in that file, but those are long gone.)

New patch looks good to me, thanks!

> I tried to be overly correct by using sysconf(_SC_GETPW_R_SIZE_MAX) to 
> get the buffer size, but that doesn't work on FreeBSD.  All the OS where 
> I could find the source code internally use 1024 as the suggested buffer 
> size, so I just ended up hardcoding that.  This should be no worse than 
> what the code is currently handling.

Maybe add a brief comment on that.

-- 
Heikki Linnakangas
Neon (https://neon.tech)




pgsql-hackers by date:

Previous
From: "Euler Taveira"
Date:
Subject: Re: Proposal to have INCLUDE/EXCLUDE options for altering option values
Next
From: Andrei Lepikhov
Date:
Subject: Re: allowing extensions to control planner behavior