summaryrefslogtreecommitdiff
path: root/master.c
diff options
context:
space:
mode:
authorNed T. Crigler <crigler@users.sourceforge.net>2001-11-28 22:56:40 +0000
committerNed T. Crigler <crigler@users.sourceforge.net>2001-11-28 22:56:40 +0000
commit3653366fd8247744d2ee5389f5107f6eb5545ddd (patch)
treeef1c67fb070fc68ecc3abedbdd32defb2227b28d /master.c
parent203193838dbc2e6acea953c484a030e5632ca5cf (diff)
Fix fd leakage.
Prevent atexit from being called twice on dtach -A.
Diffstat (limited to 'master.c')
-rw-r--r--master.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/master.c b/master.c
index 07f8431..0aad0cc 100644
--- a/master.c
+++ b/master.c
@@ -125,12 +125,21 @@ create_socket(char *name)
sockun.sun_family = AF_UNIX;
strcpy(sockun.sun_path, name);
if (bind(s, (struct sockaddr*)&sockun, sizeof(sockun)) < 0)
+ {
+ close(s);
return -1;
+ }
if (listen(s, 128) < 0)
+ {
+ close(s);
return -1;
+ }
/* chmod it to prevent any suprises */
if (chmod(name, 0600) < 0)
+ {
+ close(s);
return -1;
+ }
return s;
}
@@ -353,6 +362,7 @@ master_main(char **argv)
return 0;
}
/* Parent - just return. */
+ close(s);
return 0;
}