From: Wilfried Goesgens Date: Sun, 5 Jun 2011 21:20:17 +0000 (+0000) Subject: when not forking, we fail to drop rood privileges in advance before writing netconfig... X-Git-Tag: v8.11~1042 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=63aa220cbe6ab9bed45a2e746c16e81707a76047;p=citadel.git when not forking, we fail to drop rood privileges in advance before writing netconfig files, so we loose later access to them. Sadly we don't know our GID... --- diff --git a/citadel/modules/network/serv_network.c b/citadel/modules/network/serv_network.c index b9451547e..5dd3a9523 100644 --- a/citadel/modules/network/serv_network.c +++ b/citadel/modules/network/serv_network.c @@ -1137,13 +1137,14 @@ int writenfree_spoolcontrol_file(SpoolControl **scc, char *filename) unlink(tempfilename); } else { + fchown(TmpFD, config.c_ctdluid, 0); StrBufAppendPrintf(Cfg, "lastsent|%ld\n", sc->lastsent); - + /* Write out the listrecps while freeing from memory at the * same time. Am I clever or what? :) */ while (sc->listrecps != NULL) { - StrBufAppendPrintf(Cfg, "listrecp|%s\n", sc->listrecps->name); + StrBufAppendPrintf(Cfg, "listrecp|%s\n", sc->listrecps->name); nptr = sc->listrecps->next; free(sc->listrecps); sc->listrecps = nptr; @@ -1287,7 +1288,7 @@ void network_spoolout_room(char *room_to_spool) { } /* Now rewrite the config file */ - writenfree_spoolcontrol_file (&sc, filename); + writenfree_spoolcontrol_file(&sc, filename); end_critical_section(S_NETCONFIGS); }