- if (setuid(uid) || getuid() != uid) {
- rprintf(FERROR,"setuid %d failed\n", uid);
- io_printf(fd,"@ERROR: setuid failed\n");
- return -1;
+ if (setuid(uid) || getuid() != uid) {
+ rprintf(FERROR,"setuid %d failed\n", uid);
+ io_printf(fd,"@ERROR: setuid failed\n");
+ return -1;
+ }
+
+ } else {
+ if (!push_dir(lp_path(i), 0)) {
+ rprintf(FERROR,"chdir %s failed\n", lp_path(i));
+ io_printf(fd,"@ERROR: chdir failed\n");
+ return -1;
+ }