On Sat, May 07, 2011 at 11:10:58AM +0000, Jaakko Heinonen wrote:
> Author: jh
> Date: Sat May  7 11:10:58 2011
> New Revision: 221597
> URL: http://svn.freebsd.org/changeset/base/221597
> 
> Log:
>   Add WITNESS_WARN() to getenv() to explicitly note that the function may
>   sleep. This helps to expose bugs when the requested environment variable
>   doesn't exist.
> 
> Modified:
>   head/sys/kern/kern_environment.c
> 
> Modified: head/sys/kern/kern_environment.c
> ==============================================================================
> --- head/sys/kern/kern_environment.c  Sat May  7 11:05:16 2011        
> (r221596)
> +++ head/sys/kern/kern_environment.c  Sat May  7 11:10:58 2011        
> (r221597)
> @@ -310,6 +310,7 @@ getenv(const char *name)
>       int len;
>  
>       if (dynamic_kenv) {
> +             WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "getenv");
>               mtx_lock(&kenv_lock);
>               cp = _getenv_dynamic(name, NULL);
>               if (cp != NULL) {

This might be somewhat excessive. Since malloc() warns or panics anyway,
what about moving the WITNESS_WARN into "not found" branch ?

Attachment: pgpSxcNFXUJz0.pgp
Description: PGP signature

Reply via email to