[lxc-devel] [PATCH 20/24] lxc_unshare: Replace getpw*_r by getpw*

Serge Hallyn serge.hallyn at canonical.com
Tue Jan 8 18:35:51 UTC 2013


Quoting Stéphane Graber (stgraber at ubuntu.com):
> Bionic and maybe some other libc implementations lack the _r nss functions.
> This replaces our current getpwnam_r and getpwuid_r calls by getpwnam and
> getpwuid.
> 
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

> ---
>  src/lxc/lxc_unshare.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/src/lxc/lxc_unshare.c b/src/lxc/lxc_unshare.c
> index 3a848b2..df91456 100644
> --- a/src/lxc/lxc_unshare.c
> +++ b/src/lxc/lxc_unshare.c
> @@ -54,12 +54,9 @@ void usage(char *cmd)
>  
>  static uid_t lookup_user(const char *optarg)
>  {
> -	int bufflen = sysconf(_SC_GETPW_R_SIZE_MAX);
> -	char buff[bufflen];
>  	char name[sysconf(_SC_LOGIN_NAME_MAX)];
>  	uid_t uid = -1;
> -	struct passwd pwent;
> -	struct passwd *pent;
> +	struct passwd *pwent = NULL;
>  
>  	if (!optarg || (optarg[0] == '\0'))
>  		return uid;
> @@ -69,13 +66,15 @@ static uid_t lookup_user(const char *optarg)
>  		if (sscanf(optarg, "%s", name) < 1)
>  			return uid;
>  
> -		if (getpwnam_r(name, &pwent, buff, bufflen, &pent) || !pent) {
> +		pwent = getpwnam(name);
> +		if (!pwent) {
>  			ERROR("invalid username %s", name);
>  			return uid;
>  		}
> -		uid = pent->pw_uid;
> +		uid = pwent->pw_uid;
>  	} else {
> -		if (getpwuid_r(uid, &pwent, buff, bufflen, &pent) || !pent) {
> +		pwent = getpwuid(uid);
> +		if (!pwent) {
>  			ERROR("invalid uid %d", uid);
>  			uid = -1;
>  			return uid;
> -- 
> 1.8.0
> 
> 
> ------------------------------------------------------------------------------
> Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS
> and more. Get SQL Server skills now (including 2012) with LearnDevNow -
> 200+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
> SALE $99.99 this month only - learn more at:
> http://p.sf.net/sfu/learnmore_122512
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel




More information about the lxc-devel mailing list