> > 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("/");
> > +
> 
> Bad side effect of doing that is it is not hard to get a "core"
                                         ^^^ now
> from top when run as a user, as it is going to try to write
> to /, and it probably does not have permission for that.
> 
> Better might be a cd to /tmp, or /var/tmp, which are usually
> hard to unmount for these reasons anyway.
> 
> >      /* set the buffer for stdout */
> >  #ifdef DEBUG
> >      extern FILE *debug;
> > 
> > 
> 
> -- 
> Rod Grimes                                                 rgri...@freebsd.org
> 
> 

-- 
Rod Grimes                                                 rgri...@freebsd.org
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to