--- util-vserver-0.30.210/src/rpm-fake-resolver.c~ 2006-06-16 03:22:36.000000000 +0300
+++ util-vserver-0.30.210/src/rpm-fake-resolver.c 2006-06-16 03:22:40.000000000 +0300
-@@ -161,6 +161,13 @@
- if (EreadAll(0, buf, len)) {
- buf[len] = '\0';
-+ errno = 0;
- res = getpwnam(buf);
-+ if (errno) {
-+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "getpwnam(): ");
-+ WRITE_STR(2, strerror(errno));
-+ WRITE_MSG(2, "\n");
-+ exit(1);
-+ }
- }
-
- if (res!=0) sendResult(true, res->pw_uid);
-@@ -182,6 +189,13 @@
- if (EreadAll(0, buf, len)) {
- buf[len] = '\0';
-+ errno = 0;
- res = getgrnam(buf);
-+ if (errno) {
-+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "getgrnam(): ");
-+ WRITE_STR(2, strerror(errno));
-+ WRITE_MSG(2, "\n");
-+ exit(1);
-+ }
- }
-
- if (res!=0) sendResult(true, res->gr_gid);
+@@ -301,10 +301,16 @@
+ Echdir("/");
+
+ activateContext(args.ctx, args.in_ctx, args.caps, args.flags);
+ Esetgroups(0, &args.gid);
+ Esetgid(args.gid);
+ Esetuid(args.uid);
+
++ if (access("/", X_OK) == -1) {
++ WRITE_MSG(2,
++ "*** root directory is not accessible for specified uid. rpm-fake-resolver will most likely fail.\n"
++ );
++ }
++
+ if (args.do_fork) daemonize(&args, pid_fd);
+ if (pid_fd!=-1) close(pid_fd);
+ run();