diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2020-01-13 00:11:55 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2020-01-13 08:59:48 +0100 |
commit | ba4217f7183fb76ae1774062c06ae5d77cc1b2f7 (patch) | |
tree | 640c8f162254a4b20617d19329f8549ae757443b /source/a/nvi/patches/nvi-21-exrc_writability_check.patch | |
parent | ed2eb16b1115533f646c6a631c2576f139096e6d (diff) | |
download | current-ba4217f7183fb76ae1774062c06ae5d77cc1b2f7.tar.gz |
Mon Jan 13 00:11:55 UTC 202020200113001155
a/elvis-2.2_0-x86_64-5.txz: Rebuilt.
Don't make /usr/bin/{ex,vi} symlinks.
a/kernel-generic-5.4.11-x86_64-1.txz: Upgraded.
a/kernel-huge-5.4.11-x86_64-1.txz: Upgraded.
a/kernel-modules-5.4.11-x86_64-1.txz: Upgraded.
a/nvi-1.81.6-x86_64-1.txz: Added.
This is an implementation of the classic ex/vi text editor written by Keith
Bostic. Due to this having UTF8 support which elvis lacks, we'll have it
take over the ex/vi symlinks if they aren't already pointing to a different
choice. Note that the removal of vi/ex symlinks from the elvis and vim
packages might cause your ex/vi symlinks to point to this after all the ex/vi
packages have been upgraded. You can set them to your preferences using
pkgtool -> Setup -> vi-ex.
a/pkgtools-15.0-noarch-29.txz: Rebuilt.
Added an installer/pkgtool menu to select the default ex/vi editor.
ap/vim-8.2.0114-x86_64-1.txz: Upgraded.
Don't make /usr/bin/{ex,vi} symlinks.
d/kernel-headers-5.4.11-x86-1.txz: Upgraded.
d/python-setuptools-45.0.0-x86_64-1.txz: Upgraded.
k/kernel-source-5.4.11-noarch-1.txz: Upgraded.
l/imagemagick-7.0.9_15-x86_64-1.txz: Upgraded.
n/ethtool-5.4-x86_64-1.txz: Upgraded.
xap/vim-gvim-8.2.0114-x86_64-1.txz: Upgraded.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source/a/nvi/patches/nvi-21-exrc_writability_check.patch')
-rw-r--r-- | source/a/nvi/patches/nvi-21-exrc_writability_check.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/source/a/nvi/patches/nvi-21-exrc_writability_check.patch b/source/a/nvi/patches/nvi-21-exrc_writability_check.patch new file mode 100644 index 00000000..a93dbc5b --- /dev/null +++ b/source/a/nvi/patches/nvi-21-exrc_writability_check.patch @@ -0,0 +1,61 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 21exrc_writability_check.dpatch by <hesso@pool.math.tu-berlin.de> +## +## DP: No description. + +@DPATCH@ +diff -Naur nvi-1.81.6.orig/ex/ex_init.c nvi-1.81.6/ex/ex_init.c +--- nvi-1.81.6.orig/ex/ex_init.c 2007-11-18 17:41:42.000000000 +0100 ++++ nvi-1.81.6/ex/ex_init.c 2008-05-01 18:24:45.000000000 +0200 +@@ -26,6 +26,9 @@ + #include <string.h> + #include <unistd.h> + ++#include <pwd.h> ++#include <grp.h> ++ + #include "../common/common.h" + #include "tag.h" + #include "pathnames.h" +@@ -346,6 +349,9 @@ + int nf1, nf2; + char *a, *b, buf[MAXPATHLEN]; + ++ struct group *grp_p; ++ struct passwd *pwd_p; ++ + /* Check for the file's existence. */ + if (stat(path, sbp)) + return (NOEXIST); +@@ -359,10 +365,30 @@ + } + + /* Check writeability. */ +- if (sbp->st_mode & (S_IWGRP | S_IWOTH)) { ++ if (sbp->st_mode & S_IWOTH) { + etype = WRITER; + goto denied; + } ++ if (sbp->st_mode & S_IWGRP) { ++ /* on system error (getgrgid or getpwnam return NULL) set etype to WRITER ++ * and continue execution */ ++ if( (grp_p = getgrgid(sbp->st_gid)) == NULL) { ++ etype = WRITER; ++ goto denied; ++ } ++ ++ /* lookup the group members' uids for an uid different from euid */ ++ while( ( *(grp_p->gr_mem) ) != NULL) { /* gr_mem is a null-terminated array */ ++ if( (pwd_p = getpwnam(*(grp_p->gr_mem)++)) == NULL) { ++ etype = WRITER; ++ goto denied; ++ } ++ if(pwd_p->pw_uid != euid) { ++ etype = WRITER; ++ goto denied; ++ } ++ } ++ } + return (RCOK); + + denied: a = msg_print(sp, path, &nf1); |