From: Marek VavruĊĦa Date: Sun, 12 Apr 2015 19:48:51 +0000 (+0200) Subject: daemon: check if rundir is writeable X-Git-Tag: v1.0.0-beta1~251^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d582fefd067c387ad8f93a7de1cf1195f9990f6a;p=thirdparty%2Fknot-resolver.git daemon: check if rundir is writeable --- diff --git a/daemon/main.c b/daemon/main.c index ef5bc3790..2cae4746e 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -76,7 +76,7 @@ static const char *set_addr(char *addr, int *port) int main(int argc, char **argv) { - const char *addr = "127.0.0.1"; + const char *addr = NULL; int port = 53; /* Long options. */ @@ -108,12 +108,16 @@ int main(int argc, char **argv) /* Switch to rundir. */ if (optind < argc) { - ret = chdir(argv[optind]); + const char *rundir = argv[optind]; + if (access(rundir, W_OK) != 0) { + fprintf(stderr, "[system] rundir '%s': not writeable\n", rundir); + return EXIT_FAILURE; + } + ret = chdir(rundir); if (ret != 0) { - fprintf(stderr, "[system] rundir '%s': %s\n", argv[optind], strerror(errno)); + fprintf(stderr, "[system] rundir '%s': %s\n", rundir, strerror(errno)); return EXIT_FAILURE; } - printf("[system] rundir '%s'\n", argv[optind]); } /* Block signals. */