Wiki TODO Entry: check usage of setenv()

Matthew Dillon dillon at apollo.backplane.com
Wed Aug 10 10:43:01 PDT 2005


:On 10.08.2005, at 13:35, Gordon Bergling wrote:
:> on http://wiki.dragonflybsd.org/index.php/SoC are several projects
:> listed. I have some spare time today and would like to take the setenv 
:> part.
:
:cool!
:
:> 1. What about src/contrib?
:
:usually don't care, except if it is a set[ug]id binary or a daemon etc. 
:At least that's how I see it.
:
:> 2. is something like
:>  |  if( setenv(....) != 1 )
:>  |  {
:>  |     fprintf(stderr, "Malloc failed!");
:>  |  }
:>
:>    enough or is there more to do?
:
:that depends on the context. Maybe the env setting isn't ciritical, so 
:a warning might be sufficient. Maybe setting the variable is an 
:absolute must, and a failure demands aborting the execution (i could 
:imagine env(1) would be such a candidate)
:
:cheers
:   simon

    I think all we really should care about are suid/sgid programs.  Normal
    programs... I don't think it matters.  setenv() should basically never
    fail, anyway.

    Alternatively we could use our varsym support to set security levels for
    libc.  So, e.g. setenv() would abort the program if it failed due to 
    being unable to allocate memory.  The only libc would need to be changed.

    In fact, I'd like to use varsym's to deal with the malloc() flags as well,
    and get rid of /etc/malloc.conf.

    There are a number of library calls that fall into the 'pretty much must
    always succeed or there is something seriously wrong with the program
    or environment' that could use the same treatment.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Kernel mailing list