Quoting Stéphane Graber (stgra...@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 <stgra...@ubuntu.com> > --- > src/lxc/lxc_unshare.c | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) > > diff --git a/src/lxc/lxc_unshare.c b/src/lxc/lxc_unshare.c > index 3a848b2..224d8d0 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,17 +66,21 @@ 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; > + free(pwent);
You can't free the result of getpwnam. > } else { > - if (getpwuid_r(uid, &pwent, buff, bufflen, &pent) || !pent) { > + pwent = getpwuid(uid); > + if (!pwent) { > ERROR("invalid uid %d", uid); > uid = -1; > return uid; > } > + free(pwent); > } > return uid; > } > -- > 1.8.0 > > > ------------------------------------------------------------------------------ > Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, > MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current > with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft > MVPs and experts. ON SALE this month only -- learn more at: > http://p.sf.net/sfu/learnmore_122712 > _______________________________________________ > Lxc-devel mailing list > Lxc-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/lxc-devel ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnmore_122712 _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel