Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Jun 2018 22:06:28 +0000 (UTC)
From:      Eitan Adler <eadler@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r334543 - head/usr.bin/top
Message-ID:  <201806022206.w52M6S98020830@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: eadler
Date: Sat Jun  2 22:06:27 2018
New Revision: 334543
URL: https://svnweb.freebsd.org/changeset/base/334543

Log:
  top(1): chdir to / as init; remove unneeded comment
  
  - chdir to / to allow unmounting of wd
  - remove warning about running top(1) as setuid. If this is a concern we
  should just drop privs instead.

Modified:
  head/usr.bin/top/machine.c
  head/usr.bin/top/top.c

Modified: head/usr.bin/top/machine.c
==============================================================================
--- head/usr.bin/top/machine.c	Sat Jun  2 21:50:00 2018	(r334542)
+++ head/usr.bin/top/machine.c	Sat Jun  2 22:06:27 2018	(r334543)
@@ -1613,11 +1613,6 @@ compare_ivcsw(const void *arg1, const void *arg2)
 /*
  * proc_owner(pid) - returns the uid that owns process "pid", or -1 if
  *		the process does not exist.
- *		It is EXTREMELY IMPORTANT that this function work correctly.
- *		If top runs setuid root (as in SVR4), then this function
- *		is the only thing that stands in the way of a serious
- *		security problem.  It validates requests for the "kill"
- *		and "renice" commands.
  */
 
 int

Modified: head/usr.bin/top/top.c
==============================================================================
--- head/usr.bin/top/top.c	Sat Jun  2 21:50:00 2018	(r334542)
+++ head/usr.bin/top/top.c	Sat Jun  2 22:06:27 2018	(r334543)
@@ -260,6 +260,15 @@ main(int argc, char *argv[])
 #define CMD_order	26
 #define CMD_pid		27
 
+    /*
+     * Since top(1) is often long running and
+     * doesn't typically care about where its running from
+     * chdir to the root to allow unmounting of its
+     * originall wd. Failure is alright as this is
+     * just a courtesy for users.
+     */
+    chdir("/");
+
     /* set the buffer for stdout */
 #ifdef DEBUG
     extern FILE *debug;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806022206.w52M6S98020830>