[PATCH 00/12] pull: write(1) improvements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Recent write(1) regression inspired me to have a look what is going on with
this source file.  Here are the results of the inspection.  I am pretty
confident most of the changes are quick and easy to review, with exception
of one - the last change.  Let me explain a little bit closer.

Current messaging is fine assuming group ownership and setgid bit are set,
but if they are not then one will get misleading message about oneself not
having mesg(1) enabled (even if they would be).  The difficult bit is how
should be fixed.  I can think of three different options:

  1) Match process effective gid with tty device file gid, and complain when
  not matching.  This is what I propose.

  2) Use faccessat(3) to determine whether run time has effivice access to
  tty path.

  3) Perform the check at the time of stdout freopen(2), and fail with
  permission denied when necessary.

Second option feels a bit pointless as the third option does exactly the
same, and one only has to delete code to make that to work.  Main reason why
I like first option is that it gives hint how one ought to fix an issue. 
Simple 'permission denied' is less obvious.  Unfortunately the option 1 can
cause failure when write would have been possible due ownership of the tty
file - so in that sense option 2 is better.  So where I'm getting at is that
there's good and bad sides in each of these options and it would be nice to
hear what others think is the best thing to do.

----------------------------------------------------------------
The following changes since commit 94af67f2aaaafce58f495b2415e534a0c2508332:
  Merge branch 'no-fork' of https://github.com/terryburton/util-linux (2016-05-09 13:28:52 +0200)
are available in the git repository at:
  git://github.com/kerolasa/lelux-utiliteetit.git write-improvements
for you to fetch changes up to 354f2ee527fe9d6f5d6dcd111af49b47469eaad6:
  write: tell when effective gid and tty path group mismatch (2016-05-09 22:03:14 +0100)
----------------------------------------------------------------

Sami Kerola (12):
  write: remove unused variable
  write: get rid of function prototypes
  write: remove pointless fileno(3) calls
  write: set atime value in term_chk() only if needed
  write: use xstrncpy() from strutils.h
  write: run atexit() checks at the end of execution
  write: add control structure to clarify what is going on
  write: improve variable names
  write: remove unnecessary utmp variables
  write: make timestamp to be obviously just a clock time
  write: improve coding style
  write: tell when effective gid and tty path group mismatch

 term-utils/write.c | 395 +++++++++++++++++++++++++++--------------------------
 1 file changed, 199 insertions(+), 196 deletions(-)

-- 
2.8.2

--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux