summaryrefslogtreecommitdiff
path: root/arch/um/os-Linux/file.c
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2006-02-28 16:35:24 +1100
committerPaul Mackerras <paulus@samba.org>2006-02-28 16:35:24 +1100
commit6749c5507388f3fc3719f57a54b540ee83f6661a (patch)
treec069f990f86b020a14b50759d0c75475eedde186 /arch/um/os-Linux/file.c
parent2cf82c0256b198ae28c465f2c4d7c12c836ea5ea (diff)
parent56ec6462af9cba56a04439154e5768672d6f390f (diff)
Merge ../powerpc-merge
Diffstat (limited to 'arch/um/os-Linux/file.c')
-rw-r--r--arch/um/os-Linux/file.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c
index f55773c819e6..3bd10deea280 100644
--- a/arch/um/os-Linux/file.c
+++ b/arch/um/os-Linux/file.c
@@ -272,14 +272,23 @@ int os_connect_socket(char *name)
snprintf(sock.sun_path, sizeof(sock.sun_path), "%s", name);
fd = socket(AF_UNIX, SOCK_STREAM, 0);
- if(fd < 0)
- return(fd);
+ if(fd < 0) {
+ err = -errno;
+ goto out;
+ }
err = connect(fd, (struct sockaddr *) &sock, sizeof(sock));
- if(err)
- return(-errno);
+ if(err) {
+ err = -errno;
+ goto out_close;
+ }
- return(fd);
+ return fd;
+
+out_close:
+ close(fd);
+out:
+ return err;
}
void os_close_file(int fd)