aboutsummaryrefslogtreecommitdiff
path: root/lang/perl5/files/patch-ad
diff options
context:
space:
mode:
Diffstat (limited to 'lang/perl5/files/patch-ad')
-rw-r--r--lang/perl5/files/patch-ad83
1 files changed, 40 insertions, 43 deletions
diff --git a/lang/perl5/files/patch-ad b/lang/perl5/files/patch-ad
index dacef7ef6def..e6863c22280f 100644
--- a/lang/perl5/files/patch-ad
+++ b/lang/perl5/files/patch-ad
@@ -1,44 +1,41 @@
---- hints/freebsd.sh.orig Mon Feb 12 21:52:51 1996
-+++ hints/freebsd.sh Wed Oct 23 18:00:16 1996
-@@ -43,16 +43,39 @@
- d_setruid='undef'
- ;;
- #
--# Trying to cover 2.0.5, 2.1-current and future 2.1
-+# Trying to cover 2.0.5, 2.1-current and future 2.1/2.2
- # It does not covert all 2.1-current versions as the output of uname
- # changed a few times.
- #
-+# Even though seteuid/setegid are available, they've been turned off
-+# because perl isn't coded with saved set[ug]id variables in mind.
-+# In addition, a small patch is requried to suidperl to avoid a security
-+# problem with FreeBSD.
-+#
- 2.0.5*|2.0-built*|2.1*)
- usevfork='true'
-+ d_dosuid='define'
-+ d_setregid='define'
-+ d_setreuid='define'
-+ d_setegid='undef'
-+ d_seteuid='undef'
-+ ;;
-+#
-+# 2.2 and above have phkmalloc(3).
-+2.2*)
-+ usevfork='true'
-+ usemymalloc='n'
-+ d_dosuid='define'
-+ d_setregid='define'
-+ d_setreuid='define'
-+ d_setegid='undef'
-+ d_seteuid='undef'
- ;;
- #
--# Guesses at what will be needed after 2.1
-+# Guesses at what will be needed after 2.2
- *) usevfork='true'
-+ usemymalloc='n'
-+ d_dosuid='define'
- ;;
- esac
+--- perl.h.ORIG Mon Apr 28 17:36:10 1997
++++ perl.h Fri May 23 11:56:49 1997
+@@ -223,6 +223,15 @@
+ # include <sys/param.h>
+ #endif
++/* needed for IAMSUID case for 4.4BSD systems
++ * XXX there should probably be a Configure variable
++ */
++
++#ifdef I_SYS_PARAM
++#if (defined (BSD) && (BSD >= 199306))
++# include <sys/mount.h>
++#endif /* !BSD */
++#endif /* !I_SYS_PARAM */
+
+ /* Use all the "standard" definitions? */
+ #if defined(STANDARD_C) && defined(I_STDLIB)
+--- perl5.004/perl.c.ORIG Fri May 16 00:14:03 1997
++++ perl.c Fri May 23 11:56:49 1997
+@@ -1917,6 +1917,20 @@
+ croak("Can't swap uid and euid"); /* really paranoid */
+ if (Stat(SvPVX(GvSV(curcop->cop_filegv)),&tmpstatbuf) < 0)
+ croak("Permission denied"); /* testing full pathname here */
++#if (defined(BSD) && (BSD >= 199306))
++#ifdef IAMSUID
++ {
++ struct statfs stfs;
++
++ if (fstatfs(fileno(rsfp),&stfs) < 0)
++ croak("Can't statfs filesystem of script \"%s\"",origfilename);
++
++ if (stfs.f_flags & MNT_NOSUID)
++ croak("Permission denied");
++ }
++#endif /* IAMSUID */
++#endif /* BSD */
++
+ if (tmpstatbuf.st_dev != statbuf.st_dev ||
+ tmpstatbuf.st_ino != statbuf.st_ino) {
+ (void)PerlIO_close(rsfp);