diff options
Diffstat (limited to 'source/ap/ksh93/patches/ksh-20140929-safefd.patch')
-rw-r--r-- | source/ap/ksh93/patches/ksh-20140929-safefd.patch | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/source/ap/ksh93/patches/ksh-20140929-safefd.patch b/source/ap/ksh93/patches/ksh-20140929-safefd.patch deleted file mode 100644 index 80db2052..00000000 --- a/source/ap/ksh93/patches/ksh-20140929-safefd.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff -up ksh-20120801/src/cmd/ksh93/include/io.h.safefd ksh-20120801/src/cmd/ksh93/include/io.h ---- ksh-20120801/src/cmd/ksh93/include/io.h.safefd 2015-03-03 18:21:40.544732158 +0100 -+++ ksh-20120801/src/cmd/ksh93/include/io.h 2015-03-03 18:22:16.284447849 +0100 -@@ -78,6 +78,7 @@ extern void sh_iorestore(Shell_t*,int,i - extern Sfio_t *sh_iostream(Shell_t*,int); - extern int sh_redirect(Shell_t*,struct ionod*,int); - extern void sh_iosave(Shell_t *, int,int,char*); -+extern int safefdnumber(Shell_t* shp, int sfd); - extern int sh_iovalidfd(Shell_t*, int); - extern int sh_inuse(Shell_t*, int); - extern void sh_iounsave(Shell_t*); -diff -up ksh-20120801/src/cmd/ksh93/sh/io.c.safefd ksh-20120801/src/cmd/ksh93/sh/io.c ---- ksh-20120801/src/cmd/ksh93/sh/io.c.safefd 2015-03-03 18:21:40.511732421 +0100 -+++ ksh-20120801/src/cmd/ksh93/sh/io.c 2015-03-03 18:21:40.544732158 +0100 -@@ -1724,6 +1724,25 @@ void sh_iosave(Shell_t *shp, register in - } - } - -+int safefdnumber(Shell_t* shp, int sfd) -+{ -+ register int fd; -+ -+ while(1) -+ { -+ for(fd=0; fd < shp->topfd; fd++) -+ { -+ if (filemap[fd].save_fd==sfd || filemap[fd].orig_fd==sfd || (fcntl(sfd, F_GETFD) != -1 || errno != EBADF)) -+ { -+ sfd++; -+ continue; -+ } -+ } -+ break; -+ } -+ return sfd; -+} -+ - /* - * close all saved file descriptors - */ -diff -up ksh-20120801/src/cmd/ksh93/sh/subshell.c.safefd ksh-20120801/src/cmd/ksh93/sh/subshell.c ---- ksh-20120801/src/cmd/ksh93/sh/subshell.c.safefd 2015-03-03 18:21:40.531732261 +0100 -+++ ksh-20120801/src/cmd/ksh93/sh/subshell.c 2015-03-03 18:21:40.544732158 +0100 -@@ -673,7 +673,7 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_ - } - if(iop && sffileno(iop)==1) - { -- int fd=sfsetfd(iop,3); -+ int fd=sfsetfd(iop,safefdnumber(shp,3)); - if(fd<0) - { - shp->toomany = 1; |