diff options
author | wbx <wbx@hydrogenium.(none)> | 2009-05-17 14:41:34 +0200 |
---|---|---|
committer | wbx <wbx@hydrogenium.(none)> | 2009-05-17 14:41:34 +0200 |
commit | 219a6dab8995aad9ac4860cc1a84d6f3509a03a4 (patch) | |
tree | b9c0f3c43aebba2fcfef777592d0add39f2072f4 /package/nfs-utils/patches/patch-utils_mountd_cache_c |
Initial import
Diffstat (limited to 'package/nfs-utils/patches/patch-utils_mountd_cache_c')
-rw-r--r-- | package/nfs-utils/patches/patch-utils_mountd_cache_c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/package/nfs-utils/patches/patch-utils_mountd_cache_c b/package/nfs-utils/patches/patch-utils_mountd_cache_c new file mode 100644 index 000000000..5f46d3116 --- /dev/null +++ b/package/nfs-utils/patches/patch-utils_mountd_cache_c @@ -0,0 +1,75 @@ +$Id: update-patches 24 2008-08-31 14:56:13Z wbx $ +--- nfs-utils-1.1.4.orig/utils/mountd/cache.c 2008-10-17 16:20:09.000000000 +0200 ++++ nfs-utils-1.1.4/utils/mountd/cache.c 2009-01-03 13:48:33.000000000 +0100 +@@ -118,54 +118,6 @@ void auth_unix_ip(FILE *f) + free(he); + } + +-void auth_unix_gid(FILE *f) +-{ +- /* Request are +- * uid +- * reply is +- * uid expiry count list of group ids +- */ +- int uid; +- struct passwd *pw; +- gid_t glist[100], *groups = glist; +- int ngroups = 100; +- int rv, i; +- char *cp; +- +- if (readline(fileno(f), &lbuf, &lbuflen) != 1) +- return; +- +- cp = lbuf; +- if (qword_get_int(&cp, &uid) != 0) +- return; +- +- pw = getpwuid(uid); +- if (!pw) +- rv = -1; +- else { +- rv = getgrouplist(pw->pw_name, pw->pw_gid, groups, &ngroups); +- if (rv == -1 && ngroups >= 100) { +- groups = malloc(sizeof(gid_t)*ngroups); +- if (!groups) +- rv = -1; +- else +- rv = getgrouplist(pw->pw_name, pw->pw_gid, +- groups, &ngroups); +- } +- } +- qword_printint(f, uid); +- qword_printint(f, time(0)+30*60); +- if (rv >= 0) { +- qword_printint(f, ngroups); +- for (i=0; i<ngroups; i++) +- qword_printint(f, groups[i]); +- } else +- qword_printint(f, 0); +- qword_eol(f); +- +- if (groups != glist) +- free(groups); +-} + + #if USE_BLKID + static const char *get_uuid_blkdev(char *path) +@@ -730,7 +682,6 @@ struct { + FILE *f; + } cachelist[] = { + { "auth.unix.ip", auth_unix_ip}, +- { "auth.unix.gid", auth_unix_gid}, + { "nfsd.export", nfsd_export}, + { "nfsd.fh", nfsd_fh}, + { NULL, NULL } +@@ -742,8 +693,6 @@ void cache_open(void) + int i; + for (i=0; cachelist[i].cache_name; i++ ) { + char path[100]; +- if (!manage_gids && cachelist[i].cache_handle == auth_unix_gid) +- continue; + sprintf(path, "/proc/net/rpc/%s/channel", cachelist[i].cache_name); + cachelist[i].f = fopen(path, "r+"); + } |