* as uid 0, that's the wrong user for volume's prexec_close scripts if any,
* restore our login user
*/
- if (seteuid( obj->uid ) < 0) {
- LOG(log_error, logtype_afpd, "can't seteuid back %s", strerror(errno));
- exit(EXITERR_SYS);
+ if (geteuid() != obj->uid) {
+ if (seteuid( obj->uid ) < 0) {
+ LOG(log_error, logtype_afpd, "can't seteuid(%u) back %s: uid: %u, euid: %u",
+ obj->uid, strerror(errno), getuid(), geteuid());
+ exit(EXITERR_SYS);
+ }
}
+
close_all_vol();
if (obj->logout)
(*obj->logout)();