diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-06-15 11:54:33 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-06-15 11:54:33 +0000 |
commit | 540009244c7c9f1aec64af6fb1efba7245ed8bb3 (patch) | |
tree | 6083ccee6a49eea6b46b4b7f9d613015dbf68036 /nscd | |
parent | 28e351249e754446ab86c9cdc5bdbe2747cff998 (diff) | |
download | glibc-540009244c7c9f1aec64af6fb1efba7245ed8bb3.tar.gz glibc-540009244c7c9f1aec64af6fb1efba7245ed8bb3.tar.xz glibc-540009244c7c9f1aec64af6fb1efba7245ed8bb3.zip |
Update.
1999-06-14 Thorsten Kukuk <kukuk@suse.de> * nscd/connections.c (handle_request): Only root is allowed to send GETSTAT request in non secure mode. * nscd/nscd.c: Print error message if other then root try to use getstat. 1999-06-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __sysctl. 1999-06-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * manual/time.texi (Limits on Resources): Describe RLIMIT_AS. Closes PR libc/1164, reported by sascha@schumann.2ns.de.
Diffstat (limited to 'nscd')
-rw-r--r-- | nscd/connections.c | 22 | ||||
-rw-r--r-- | nscd/nscd.c | 2 |
2 files changed, 17 insertions, 7 deletions
diff --git a/nscd/connections.c b/nscd/connections.c index 4daa09926d..9d1b4d366e 100644 --- a/nscd/connections.c +++ b/nscd/connections.c @@ -311,13 +311,15 @@ cannot handle old request version %d; current version is %d"), break; case GETSTAT: - send_stats (fd, dbs); - break; - case SHUTDOWN: - /* Accept shutdown only from root */ + /* Accept shutdown and getstat only from root */ if (secure_in_use && uid == 0) - termination_handler (0); + { + if (req->type == GETSTAT) + send_stats (fd, dbs); + else + termination_handler (0); + } else { struct ucred caller; @@ -330,8 +332,14 @@ cannot handle old request version %d; current version is %d"), dbg_log (_("error getting callers id: %s"), strerror_r (errno, buf, sizeof (buf))); } - else if (caller.uid == 0) - termination_handler (0); + else + if (caller.uid == 0) + { + if (req->type == GETSTAT) + send_stats (fd, dbs); + else + termination_handler (0); + } } break; diff --git a/nscd/nscd.c b/nscd/nscd.c index af5ce42be8..8c61406d2f 100644 --- a/nscd/nscd.c +++ b/nscd/nscd.c @@ -205,6 +205,8 @@ parse_opt (int key, char *arg, struct argp_state *state) } case 'g': + if (getuid () != 0) + error (EXIT_FAILURE, 0, _("Only root is allowed to use this option!")); receive_print_stats (); /* Does not return. */ |