aboutsummaryrefslogtreecommitdiff
path: root/system/pdksh/patches/042_Debian-eaccess.patch
diff options
context:
space:
mode:
authorDaniel LEVAI <leva@ecentrum.hu>2010-11-10 22:15:55 -0600
committerHeinz Wiesinger <pprkut@slackbuilds.org>2010-11-22 19:44:10 +0100
commita208cc7bde7a9841e88840e64886f859b523ccd3 (patch)
treeb87d285dd71481324b3f68a355fe10956e185c38 /system/pdksh/patches/042_Debian-eaccess.patch
parent6e55b80a3c5f74f63f5152c929b4bf272081b112 (diff)
system/pdksh: Removed (use system/ksh instead)
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
Diffstat (limited to 'system/pdksh/patches/042_Debian-eaccess.patch')
-rw-r--r--system/pdksh/patches/042_Debian-eaccess.patch140
1 files changed, 0 insertions, 140 deletions
diff --git a/system/pdksh/patches/042_Debian-eaccess.patch b/system/pdksh/patches/042_Debian-eaccess.patch
deleted file mode 100644
index c859dd459ab6..000000000000
--- a/system/pdksh/patches/042_Debian-eaccess.patch
+++ /dev/null
@@ -1,140 +0,0 @@
- * Wrote function eaccess (used to be a macro defined as `access'),
- which swaps real uid and gid with the effective ones, calls access,
- and reverts the uid/gid. This fixes the test builtin command not
- working properly when shell is privileged (closes: #245213).
-Index: pdksh-5.2.14/c_test.c
-===================================================================
---- pdksh-5.2.14.orig/c_test.c 2008-04-15 20:49:47.000000000 +0200
-+++ pdksh-5.2.14/c_test.c 2008-04-15 20:52:50.000000000 +0200
-@@ -338,7 +338,7 @@
- case TO_FILUID: /* -O */
- return test_stat(opnd1, &b1) == 0 && b1.st_uid == ksheuid;
- case TO_FILGID: /* -G */
-- return test_stat(opnd1, &b1) == 0 && b1.st_gid == getegid();
-+ return test_stat(opnd1, &b1) == 0 && b1.st_gid == kshegid;
- /*
- * Binary Operators
- */
-@@ -656,3 +656,36 @@
- else
- bi_errorf("%s", msg);
- }
-+
-+
-+#ifdef DEBIAN
-+int eaccess(const char *pathname, int mode) {
-+ int need_setreuid, need_setregid;
-+ int result;
-+ int _errno;
-+
-+
-+
-+ if (( need_setregid = ( kshgid != kshegid ) )) {
-+ setregid( kshegid, kshgid );
-+ }
-+
-+ if (( need_setreuid = ( kshuid != ksheuid ) )) {
-+ setreuid( ksheuid, kshuid );
-+ }
-+
-+ result = access( pathname, mode );
-+ _errno = errno;
-+
-+ if ( need_setregid ) {
-+ setregid( kshgid, kshegid );
-+ }
-+
-+ if ( need_setreuid ) {
-+ setreuid( kshuid, ksheuid );
-+ }
-+
-+ errno = _errno;
-+ return result;
-+}
-+#endif
-Index: pdksh-5.2.14/main.c
-===================================================================
---- pdksh-5.2.14.orig/main.c 2008-04-15 20:51:49.000000000 +0200
-+++ pdksh-5.2.14/main.c 2008-04-15 20:52:50.000000000 +0200
-@@ -269,6 +269,9 @@
-
-
- ksheuid = geteuid();
-+ kshuid = getuid();
-+ kshgid = getgid();
-+ kshegid = getegid();
- safe_prompt = ksheuid ? "$ " : "# ";
- {
- struct tbl *vp = global("PS1");
-@@ -283,7 +286,7 @@
- }
-
- /* Set this before parsing arguments */
-- Flag(FPRIVILEGED) = getuid() != ksheuid || getgid() != getegid();
-+ Flag(FPRIVILEGED) = kshuid != ksheuid || kshgid != kshegid;
-
- /* this to note if monitor is set on command line (see below) */
- Flag(FMONITOR) = 127;
-Index: pdksh-5.2.14/misc.c
-===================================================================
---- pdksh-5.2.14.orig/misc.c 2008-04-15 20:49:47.000000000 +0200
-+++ pdksh-5.2.14/misc.c 2008-04-15 20:52:50.000000000 +0200
-@@ -19,6 +19,7 @@
- int isfile));
- static const unsigned char *cclass ARGS((const unsigned char *p, int sub));
-
-+
- /*
- * Fast character classes
- */
-@@ -311,13 +312,13 @@
- ;
- #else /* OS2 */
- #ifndef DEBIAN
-- setuid(ksheuid = getuid());
-- setgid(getgid());
-+ setuid(ksheuid = kshuid = getuid());
-+ setgid(kshegid = kshgid = getgid());
- #else /* patch from OpenBSD */
-- seteuid(ksheuid = getuid());
-+ seteuid(ksheuid = kshuid = getuid());
- setuid(ksheuid);
-- setegid(getgid());
-- setgid(getgid());
-+ setegid(kshegid = kshgid = getgid());
-+ setgid(kshegid);
- #endif /* DEBIAN */
- #endif /* OS2 */
- } else if (f == FPOSIX && newval) {
-@@ -1365,3 +1366,4 @@
- return b;
- #endif /* HAVE_GETCWD */
- }
-+
-Index: pdksh-5.2.14/sh.h
-===================================================================
---- pdksh-5.2.14.orig/sh.h 2008-04-15 20:49:47.000000000 +0200
-+++ pdksh-5.2.14/sh.h 2008-04-15 20:52:50.000000000 +0200
-@@ -353,8 +353,12 @@
- #define NUFILE 10 /* Number of user-accessible files */
- #define FDBASE 10 /* First file usable by Shell */
-
-+#ifndef DEBIAN
- /* you're not going to run setuid shell scripts, are you? */
- #define eaccess(path, mode) access(path, mode)
-+#else
-+EXTERN int eaccess( const char * pathname, int mode );
-+#endif
-
- /* Make MAGIC a char that might be printed to make bugs more obvious, but
- * not a char that is used often. Also, can't use the high bit as it causes
-@@ -372,6 +376,9 @@
- EXTERN pid_t kshpid; /* $$, shell pid */
- EXTERN pid_t procpid; /* pid of executing process */
- EXTERN int ksheuid; /* effective uid of shell */
-+EXTERN int kshegid; /* effective gid of shell */
-+EXTERN int kshuid; /* real uid of shell */
-+EXTERN int kshgid; /* real gid of shell */
- EXTERN int exstat; /* exit status */
- EXTERN int subst_exstat; /* exit status of last $(..)/`..` */
- EXTERN const char *safe_prompt; /* safe prompt if PS1 substitution fails */