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

libc/setusercontext&getcap + sendmail sources...



curious... looking at ktrace...

* in __hash_open(), why after failing to stat() a file, we try to open
  it? i find only one reason -- O_CREAT in flags. but if errno == EPERM,
  will creation succeed? and if errno == ENOENT is it really needed to
  try open()ing the file if there is no O_CREAT in flags?

* why upong /etc/login.conf.db failure, the textual varian is read TWO
  times? i didn't find the relevant place in the sources, may be
  somebody already knows where is it...

OT why sendmail sources is located in /usr/src/gnu/usr.bin/sendmail?
   AFAIK sendmail's not GNU, its license looks more like BSD... :-)

-- 
Denis A. Doroshenko  [GPRS/IN/WAP, VAS group engineer] .-.        _|_  |
[Omnitel Ltd., T.Sevcenkos st. 25, Vilnius, Lithuania] | | _ _  _ .| _ |
[Phone: +370 9863486 E-mail: d.doroshenko@omnitel.net] |_|| | || |||(/_|_

...
 29829 inetd    CALL  setsid
 29829 inetd    RET   setsid 29829/0x7485
 29829 inetd    CALL  lstat(0x40046247,0xdfbfd56c)
 29829 inetd    NAMI  "/etc/login.conf"
 29829 inetd    RET   lstat 0
 29829 inetd    CALL  stat(0xdfbfd48c,0xdfbfcf2c)
 29829 inetd    NAMI  "/etc/login.conf.db"
 29829 inetd    RET   stat -1 errno 2 No such file or directory
 29829 inetd    CALL  open(0xdfbfd48c,0,0)
 29829 inetd    NAMI  "/etc/login.conf.db"
 29829 inetd    RET   open -1 errno 2 No such file or directory
 29829 inetd    CALL  open(0x40046247,0,0)
 29829 inetd    NAMI  "/etc/login.conf"
 29829 inetd    RET   open 3
 29829 inetd    CALL  read(0x3,0xdfbfd08c,0x400)
 29829 inetd    GIO   fd 3 read 989 bytes
       "# $OpenBSD: login.conf,v 1.3 2000/10/09 23:22:15 millert Exp $
	
	#
	# Sample login.conf file.  See login.conf(5) for details.
	#
	
	#
	# Standard default entry.
	# Any value changed in the daemon class should be reset in default
	# class.
	#
	default:\\
		:path=/usr/bin /bin /usr/sbin /sbin /usr/X11R6/bin /usr/local/\
	bin:\\
		:umask=022:\\
		:datasize-max=256M:\\
		:datasize-cur=64M:\\
		:maxproc-max=128:\\
		:maxproc-cur=64:\\
		:openfiles-cur=64:\\
		:stacksize-cur=4M:
	
	#
	# Settings used by /etc/rc and root
	# This must be set properly for daemons started as root by inetd as we\
	ll.
	# Be sure reset these values back to system defaults in the default cl\
	ass!
	#
	daemon:\\
		:ignorenologin:\\
		:datasize=infinity:\\
		:maxproc=infinity:\\
		:openfiles-cur=128:\\
		:stacksize-cur=8M:\\
		:tc=default:
	
	#
	# Staff have fewer restrictions and can login even when nologins are s\
	et.
	#
	staff:\\
		:datasize-cur=64M:\\
		:datasize-max=infinity:\\
		:maxproc-max=256:\\
		:maxproc-cur=128:\\
		:ignorenologin:\\
		:requirehome@:\\
		:tc=default:
       "
 29829 inetd    RET   read 989/0x3dd
 29829 inetd    CALL  lseek(0x3,0,0,0,0)
 29829 inetd    RET   lseek 0
 29829 inetd    CALL  read(0x3,0xdfbfcadc,0x400)
 29829 inetd    GIO   fd 3 read 989 bytes
       "# $OpenBSD: login.conf,v 1.3 2000/10/09 23:22:15 millert Exp $
	
	#
	# Sample login.conf file.  See login.conf(5) for details.
	#
	
	#
	# Standard default entry.
	# Any value changed in the daemon class should be reset in default
	# class.
	#
	default:\\
		:path=/usr/bin /bin /usr/sbin /sbin /usr/X11R6/bin /usr/local/\
	bin:\\
		:umask=022:\\
		:datasize-max=256M:\\
		:datasize-cur=64M:\\
		:maxproc-max=128:\\
		:maxproc-cur=64:\\
		:openfiles-cur=64:\\
		:stacksize-cur=4M:
	
	#
	# Settings used by /etc/rc and root
	# This must be set properly for daemons started as root by inetd as we\
	ll.
	# Be sure reset these values back to system defaults in the default cl\
	ass!
	#
	daemon:\\
		:ignorenologin:\\
		:datasize=infinity:\\
		:maxproc=infinity:\\
		:openfiles-cur=128:\\
		:stacksize-cur=8M:\\
		:tc=default:
	
	#
	# Staff have fewer restrictions and can login even when nologins are s\
	et.
	#
	staff:\\
		:datasize-cur=64M:\\
		:datasize-max=infinity:\\
		:maxproc-max=256:\\
		:maxproc-cur=128:\\
		:ignorenologin:\\
		:requirehome@:\\
		:tc=default:
       "
 29829 inetd    RET   read 989/0x3dd
 29829 inetd    CALL  close(0x3)
 29829 inetd    RET   close 0
 29829 inetd    CALL  getrlimit(0,0xdfbfd5ec)
 29829 inetd    RET   getrlimit 0
...