From 7bf3e29007350897cb708da01df845f4d58b4173 Mon Sep 17 00:00:00 2001
From: Laurent Bercot
Date: Wed, 1 Aug 2018 20:26:05 +0000
Subject: Remove prot
---
NEWS | 2 +-
doc/libstddjb/djbunix.html | 20 --------------------
doc/upgrade.html | 2 +-
package/deps.mak | 3 ---
src/include/skalibs/djbunix.h | 6 ------
src/libstddjb/prot.c | 19 -------------------
src/libstddjb/prot_grps.c | 27 ---------------------------
src/libstddjb/prot_readgroups.c | 27 ---------------------------
8 files changed, 2 insertions(+), 104 deletions(-)
delete mode 100644 src/libstddjb/prot.c
delete mode 100644 src/libstddjb/prot_grps.c
delete mode 100644 src/libstddjb/prot_readgroups.c
diff --git a/NEWS b/NEWS
index 8acb502..72a40f3 100644
--- a/NEWS
+++ b/NEWS
@@ -6,7 +6,7 @@ In 2.7.0.0
- Bugfixes.
- New functions: ipc_timed_sendv(), unlink_void()
- dir_close() now returns void and leaves errno unchanged
- - absolutepath(), sarealpath_tmp(), mininetstring functions removed
+ - absolutepath(), sarealpath_tmp(), mininetstring, prot functions removed
- djbunix.h doesn't include env.h anymore
diff --git a/doc/libstddjb/djbunix.html b/doc/libstddjb/djbunix.html
index 1507bcd..db2e91e 100644
--- a/doc/libstddjb/djbunix.html
+++ b/doc/libstddjb/djbunix.html
@@ -311,26 +311,6 @@ Opens file in write-only, non-blocking mode.
Returns a valid fd number if it succeeds, or -1 (and sets errno) if it fails.
- Privilege management
-
-
- int prot_readgroups (char const *name, gid_t *tab, unsigned int max)
-Reads the group database (normally /etc/group, but it can be
-altered via NSS) to get the list of supplementary groups for user name.
-Stores that list into the array pointed to by tab, which must be
-preallocated. Stores at most max elements into tab.
-Returns -1 and sets errno if it fails; else, returns the number of elements actually
-stored into tab.
-
-
-
- int prot_grps (char const *name)
-Sets the kernel-maintained list of supplementary groups for the current process
-to the list of supplementary groups for user name according to the
-group database. This is a privileged operation.
-Returns -1 and sets errno if it fails; returns 0 if it succeeds.
-
-
Executable search and execution, and environment
diff --git a/doc/upgrade.html b/doc/upgrade.html
index eb10441..3f1f1d9 100644
--- a/doc/upgrade.html
+++ b/doc/upgrade.html
@@ -23,7 +23,7 @@
The dir_close() function now returns void
and leaves errno unchanged.
The absolutepath() and sarealpath_tmp() functions, as well
-as the skalibs/mininetstring.h family of functions, have been removed.
+as the skalibs/mininetstring.h and prot family of functions, have been removed.
skalibs/djbunix.h does not include
skalibs/env.h anymore.
diff --git a/package/deps.mak b/package/deps.mak
index e2751a4..f859392 100644
--- a/package/deps.mak
+++ b/package/deps.mak
@@ -455,9 +455,6 @@ src/libstddjb/pathexec_r_name.o src/libstddjb/pathexec_r_name.lo: src/libstddjb/
src/libstddjb/pathexec_run.o src/libstddjb/pathexec_run.lo: src/libstddjb/pathexec_run.c src/include/skalibs/config.h src/include/skalibs/djbunix.h src/include/skalibs/posixplz.h
src/libstddjb/pipe_internal.o src/libstddjb/pipe_internal.lo: src/libstddjb/pipe_internal.c src/include/skalibs/djbunix.h src/include/skalibs/nonposix.h src/include/skalibs/sysdeps.h
src/libstddjb/prog.o src/libstddjb/prog.lo: src/libstddjb/prog.c src/include/skalibs/strerr2.h
-src/libstddjb/prot.o src/libstddjb/prot.lo: src/libstddjb/prot.c src/include/skalibs/djbunix.h
-src/libstddjb/prot_grps.o src/libstddjb/prot_grps.lo: src/libstddjb/prot_grps.c src/include/skalibs/djbunix.h src/include/skalibs/setgroups.h
-src/libstddjb/prot_readgroups.o src/libstddjb/prot_readgroups.lo: src/libstddjb/prot_readgroups.c src/include/skalibs/djbunix.h
src/libstddjb/rm_rf.o src/libstddjb/rm_rf.lo: src/libstddjb/rm_rf.c src/include/skalibs/djbunix.h src/include/skalibs/skamisc.h
src/libstddjb/rm_rf_in_tmp.o src/libstddjb/rm_rf_in_tmp.lo: src/libstddjb/rm_rf_in_tmp.c src/include/skalibs/direntry.h src/include/skalibs/djbunix.h src/include/skalibs/stralloc.h
src/libstddjb/rm_rf_tmp.o src/libstddjb/rm_rf_tmp.lo: src/libstddjb/rm_rf_tmp.c src/include/skalibs/djbunix.h src/include/skalibs/stralloc.h
diff --git a/src/include/skalibs/djbunix.h b/src/include/skalibs/djbunix.h
index b8bb85c..d39df3f 100644
--- a/src/include/skalibs/djbunix.h
+++ b/src/include/skalibs/djbunix.h
@@ -71,12 +71,6 @@ extern void xpathexec0_run (char const *const *, char const *const *) gccattr_no
extern void xpathexec (char const *const *) gccattr_noreturn ;
extern void xpathexec0 (char const *const *) gccattr_noreturn ;
-#define prot_gid(gid) setgid(gid)
-#define prot_uid(uid) setuid(uid)
-extern int prot_readgroups (char const *, gid_t *, unsigned int) ;
-extern int prot_grps (char const *) ;
-extern int prot_setuidgid (char const *) ;
-
extern pid_t wait_nointr (int *) ;
extern pid_t waitpid_nointr (pid_t, int *, int) ;
#define wait_pid(pid, wstat) waitpid_nointr(pid, (wstat), 0)
diff --git a/src/libstddjb/prot.c b/src/libstddjb/prot.c
deleted file mode 100644
index 6714cfb..0000000
--- a/src/libstddjb/prot.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* ISC license. */
-
-/* MT-unsafe */
-
-#include
-#include
-#include
-#include
-
-int prot_setuidgid (char const *name)
-{
- struct passwd *pw = getpwnam(name) ;
- if (!pw)
- {
- if (!errno) errno = ESRCH ;
- return 0 ;
- }
- return !prot_grps(name) && !setgid(pw->pw_gid) && !setuid(pw->pw_uid) ;
-}
diff --git a/src/libstddjb/prot_grps.c b/src/libstddjb/prot_grps.c
deleted file mode 100644
index c5ea35b..0000000
--- a/src/libstddjb/prot_grps.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* ISC license. */
-
-/* MT-unsafe */
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-int prot_grps (char const *name)
-{
- gid_t tab[NGROUPS_MAX] ;
- struct passwd *pw ;
- int n = prot_readgroups(name, tab, NGROUPS_MAX) ;
- if (n < 0) return n ;
- errno = 0 ;
- pw = getpwnam(name) ;
- if (!pw)
- {
- if (!errno) errno = ENOENT ;
- return -1 ;
- }
- return setgroups_and_gid(pw->pw_gid, n, tab) ;
-}
diff --git a/src/libstddjb/prot_readgroups.c b/src/libstddjb/prot_readgroups.c
deleted file mode 100644
index 431cf1c..0000000
--- a/src/libstddjb/prot_readgroups.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* ISC license. */
-
-/* MT-unsafe */
-
-#include
-#include
-#include
-#include
-
-int prot_readgroups (char const *name, gid_t *tab, unsigned int max)
-{
- unsigned int n = 0 ;
- for (;;)
- {
- struct group *gr ;
- char **member ;
- errno = 0 ;
- if (n >= max) break ;
- gr = getgrent() ;
- if (!gr) break ;
- for (member = gr->gr_mem ; *member ; member++)
- if (!strcmp(name, *member)) break ;
- if (*member) tab[n++] = gr->gr_gid ;
- }
- endgrent() ;
- return errno ? -1 : n ;
-}
--
cgit v1.3.1