From: Enrico Scholz Date: Sun, 3 Jul 2005 12:26:28 +0000 (+0000) Subject: - doPwStringRequest(): fixed x86_64 issue; rpm-fake.so transmitted a X-Git-Tag: version_0_30_210~167 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=052b8c1e54330532d73e313ea9ffd6c7e7f03ca1;p=util-vserver.git - doPwStringRequest(): fixed x86_64 issue; rpm-fake.so transmitted a 'size_t' value, but rpm-fake-resolver expected an uint32_t - minor cleanups git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2114 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/src/rpm-fake.c b/util-vserver/src/rpm-fake.c index 2e38a84..2c13106 100644 --- a/util-vserver/src/rpm-fake.c +++ b/util-vserver/src/rpm-fake.c @@ -524,12 +524,11 @@ exitRPMFake() static bool doPwStringRequest(uint32_t *result, char style, char const *name) { - size_t len = strlen(name); + uint32_t len = strlen(name); uint8_t code; uint8_t c; return (TEMP_FAILURE_RETRY(read (sync_sock, &c, 1))==1 && - TEMP_FAILURE_RETRY(write(pw_sock, &style, 1))==1 && TEMP_FAILURE_RETRY(write(pw_sock, &len, sizeof len))==sizeof(len) && TEMP_FAILURE_RETRY(write(pw_sock, name, len))==(ssize_t)(len) && @@ -543,6 +542,7 @@ getpwnam(const char * name) { if (pw_sock==-1) return getpwnam_func(name); else { + uint32_t id; static struct passwd res = { .pw_passwd = "*", .pw_gid = -1, @@ -552,7 +552,8 @@ getpwnam(const char * name) }; res.pw_name = (char *)(name); - if (!doPwStringRequest(&res.pw_uid, 'P', name)) return 0; + if (!doPwStringRequest(&id, 'P', name)) return 0; + res.pw_uid = id; return &res; } @@ -563,13 +564,15 @@ getgrnam(const char * name) { if (pw_sock==-1) return getgrnam_func(name); else { + uint32_t id; static struct group res = { .gr_passwd = "*", .gr_mem = 0 }; res.gr_name = (char *)(name); - if (!doPwStringRequest(&res.gr_gid, 'G', name)) return 0; + if (!doPwStringRequest(&id, 'G', name)) return 0; + res.gr_gid = id; return &res; }