X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=keyd.c;h=5cd7b57564968e68680b3562103959638c025ef1;hb=83ae316a7b14e55418349e87d1a1942a0627ae14;hp=f3966db96dcdbafde6b92b341566b1199da791a7;hpb=8e0907be1d73011075a99a0c029c56664e12843e;p=onak.git diff --git a/keyd.c b/keyd.c index f3966db..5cd7b57 100644 --- a/keyd.c +++ b/keyd.c @@ -65,7 +65,7 @@ void daemonize(void) exit(EXIT_SUCCESS); } - pid = setsid(); + setsid(); freopen("/dev/null", "r", stdin); freopen("/dev/null", "w", stdout); @@ -139,8 +139,12 @@ int sock_init(const char *sockname) if (ret != -1) { ret = listen(fd, 5); + if (ret == -1) { + close(fd); + fd = -1; + } } - + return fd; } @@ -535,6 +539,9 @@ int main(int argc, char *argv[]) while ((optchar = getopt(argc, argv, "c:fh")) != -1 ) { switch (optchar) { case 'c': + if (configfile != NULL) { + free(configfile); + } configfile = strdup(optarg); break; case 'f':