*** /usr/src/lib/libc/gen/getvfsent.c 1996/03/11 03:06:43 1.6 --- /usr/src/lib/libc/gen/getvfsent.c 1996/05/17 18:20:56 1.5.4.1 *************** *** 17,22 **** --- 17,24 ---- #include #include + #define _PATH_MODLOAD "/sbin/modload" /* XXX should be in header file */ + static struct vfsconf *_vfslist = 0; static struct vfsconf _vfsconf; static size_t _vfslistlen = 0; *************** *** 171,177 **** char *userdir = getenv("LKMDIR"); int i; ! if(userdir) { vfs_lkmdirs[NLKMDIRS - 2] = userdir; } --- 173,179 ---- char *userdir = getenv("LKMDIR"); int i; ! if(userdir && getuid() == geteuid() && getuid() == 0) { vfs_lkmdirs[NLKMDIRS - 2] = userdir; } *************** *** 226,234 **** } status = -1; ! if(getenv("TMPDIR")) { ! status = chdir(getenv("TMPDIR")); ! } if(status) { status = chdir(_PATH_VARTMP); } --- 228,234 ---- } status = -1; ! unsetenv("TMPDIR"); if(status) { status = chdir(_PATH_VARTMP); } *************** *** 236,247 **** status = chdir(_PATH_TMP); } if(status) { ! exit(status ? errno : 0); } snprintf(name_mod, sizeof name_mod, "%s%s", name, "_mod"); ! status = execlp("modload", "modload", "-e", name_mod, "-o", name_mod, ! "-u", "-q", path, (const char *)0); exit(status ? errno : 0); } --- 236,247 ---- status = chdir(_PATH_TMP); } if(status) { ! exit(errno); } snprintf(name_mod, sizeof name_mod, "%s%s", name, "_mod"); ! status = execl(_PATH_MODLOAD, "modload", "-e", name_mod, "-o", ! name_mod, "-u", "-q", path, (const char *)0); exit(status ? errno : 0); }