X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=common-src%2Flocal-security.c;h=9a27dff4099ad5ac2a4b6cdf9b7d30181749c415;hb=HEAD;hp=24016e7ed1efb7bc87780d0be09bcacdd866d357;hpb=42ff24f2a525d5965e1841b2ebe3ee0f4b918ac6;p=debian%2Famanda diff --git a/common-src/local-security.c b/common-src/local-security.c index 24016e7..9a27dff 100644 --- a/common-src/local-security.c +++ b/common-src/local-security.c @@ -61,7 +61,7 @@ const security_driver_t local_security_driver = { "LOCAL", local_connect, sec_accept, - sec_get_authenticated_peer_name_localhost, + sec_get_authenticated_peer_name_gethostname, sec_close, stream_sendpkt, stream_recvpkt, @@ -246,20 +246,25 @@ runlocal( /* drop root privs for good */ set_root_privs(-1); - safe_fd(-1, 0); - if(!xamandad_path || strlen(xamandad_path) <= 1) xamandad_path = vstralloc(amlibexecdir, "/", "amandad", NULL); #ifndef SINGLE_USERID + if (client_username && *client_username != '\0') { + initgroups(client_username, gid); + } else { + initgroups(CLIENT_LOGIN, gid); + } + if (gid != 0) + setregid(uid, gid); if (uid != 0) setreuid(uid, uid); - if (gid != 0) - setregid(gid, gid); #endif + safe_fd(-1, 0); + execlp(xamandad_path, xamandad_path, - "-auth=local", "amdump", "amindexd", "amidxtaped", (char *)NULL); + "-auth=local", (char *)NULL); error(_("error: couldn't exec %s: %s"), xamandad_path, strerror(errno)); /* should never go here, shut up compiler warning */