diff -r pam_mount-0.9.22.orig/include/pam_mount.h pam_mount-0.9.22-gidpatch/include/pam_mount.h 117a118 > gid_t gid; Only in pam_mount-0.9.22-gidpatch/src: .deps Only in pam_mount-0.9.22-gidpatch/src: .libs diff -r pam_mount-0.9.22.orig/src/pam_mount.c pam_mount-0.9.22-gidpatch/src/pam_mount.c 351a352,365 > > // WM > > struct passwd *pwd; > > config.gid = 0; > if ((pwd = getpwnam(config.user)) == NULL) { > w4rn("pam_mount: no gid !!!"); > } > else { > w4rn("pam_mount: gid: %d", pwd->pw_gid); > config.gid = pwd->pw_gid; > } > 380a395,396 > > diff -r pam_mount-0.9.22.orig/src/readconfig.c pam_mount-0.9.22-gidpatch/src/readconfig.c 840a841,882 > static char *expand_wildcard2(char *dest, size_t dest_size, const char *str, > const gid_t gid) > { > char gid_str[80]; > char *pos, *src; > w4rn("pam_mount: expand_wildcard2 for %s\n", str); > if (str == NULL) { > l0g("pam_mount %s\n", "tried to expand a NULL"); > return NULL; > } > sprintf(gid_str,"%d",(int)gid); > > src = g_strdup(str); > pos = strchr(src, '%'); > if (pos) { > size_t seg_len; > /* - 1 because & is dropped from str */ > if (strlen(src) + strlen(gid_str) - 1 < dest_size) { > seg_len = pos - src; > strcpy(dest, src); > strcpy(dest + seg_len, gid_str); > if (!expand_wildcard2 > (dest + seg_len + strlen(gid_str), > dest_size - seg_len - strlen(gid_str), > src + seg_len + 1, gid)) { > g_free(src); > return NULL; > } > } else { > l0g("pam_mount %s\n", > "destination string to short"); > g_free(src); > return NULL; > } > } else { > strncpy(dest, src, dest_size); > dest[dest_size - 1] = 0x00; > } > g_free(src); > return (dest); > } > 896a939,943 > if (!expand_wildcard2 > (tmp, sizeof(tmp), optlist_val(e), > config->gid)) > return 0; > optlist_val(e) = g_strdup(tmp);