uml: network formatting
[deliverable/linux.git] / arch / um / drivers / pty.c
index 1e3fd619a83732f53244f1b025661557bc020955..4123fe1fca985aa9cbe94d2fd1cc703a70252ff2 100644 (file)
@@ -56,11 +56,11 @@ static int pts_open(int input, int output, int primary, void *d,
        if (data->raw) {
                CATCH_EINTR(err = tcgetattr(fd, &data->tt));
                if (err)
-                       return err;
+                       goto out_close;
 
                err = raw(fd);
                if (err)
-                       return err;
+                       goto out_close;
        }
 
        dev = ptsname(fd);
@@ -71,6 +71,10 @@ static int pts_open(int input, int output, int primary, void *d,
                (*data->announce)(dev, data->dev);
 
        return fd;
+
+out_close:
+       close(fd);
+       return err;
 }
 
 static int getmaster(char *line)
@@ -119,10 +123,12 @@ static int pty_open(int input, int output, int primary, void *d,
        if (fd < 0)
                return fd;
 
-       if(data->raw){
+       if (data->raw) {
                err = raw(fd);
-               if (err)
+               if (err) {
+                       close(fd);
                        return err;
+               }
        }
        
        if (data->announce)
This page took 0.025933 seconds and 5 git commands to generate.