Pass the interface to close as an fd besides that by name... passing it by
name does not work with newer uml_net because that allows to ifconfig down
arbitrary interfaces, while if you have an open fd to the SLIP interface it
means you have full access to it (and thus can close it). Passing only by fd
does not work with older utilities, so we do both things (which does not
hurt).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
---

 linux-2.6.11-paolo/arch/um/drivers/slip_user.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletion(-)

diff -puN arch/um/drivers/slip_user.c~uml-uml_net-security-fix 
arch/um/drivers/slip_user.c
--- linux-2.6.11/arch/um/drivers/slip_user.c~uml-uml_net-security-fix   
2005-03-21 15:25:41.000000000 +0100
+++ linux-2.6.11-paolo/arch/um/drivers/slip_user.c      2005-03-21 
15:25:41.000000000 +0100
@@ -108,6 +108,9 @@ static int slip_tramp(char **argv, int f
                        err = -EINVAL;
                }
        }
+
+       os_close_file(fds[0]);
+
        return(err);
 }
 
@@ -128,6 +131,7 @@ static int slip_open(void *data)
        sfd = os_open_file(ptsname(mfd), of_rdwr(OPENFLAGS()), 0);
        if(sfd < 0){
                printk("Couldn't open tty for slip line, err = %d\n", -sfd);
+               os_close_file(mfd);
                return(sfd);
        }
        if(set_up_tty(sfd)) return(-1);
@@ -175,7 +179,7 @@ static void slip_close(int fd, void *dat
 
        sprintf(version_buf, "%d", UML_NET_VERSION);
 
-       err = slip_tramp(argv, -1);
+       err = slip_tramp(argv, pri->slave);
 
        if(err != 0)
                printk("slip_tramp failed - errno = %d\n", -err);
_


-------------------------------------------------------
This SF.net email is sponsored by: 2005 Windows Mobile Application Contest
Submit applications for Windows Mobile(tm)-based Pocket PCs or Smartphones
for the chance to win $25,000 and application distribution. Enter today at
http://ads.osdn.com/?ad_id=6882&alloc_id=15148&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to