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 | 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@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to