Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Feb 2009 19:00:11 GMT
From:      Jaakko Heinonen <jh@saunalahti.fi>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/132104: kenv buffer overflow
Message-ID:  <200902251900.n1PJ0BA7073647@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/132104; it has been noted by GNATS.

From: Jaakko Heinonen <jh@saunalahti.fi>
To: Dylan Cochran <a134qaed@gmail.com>
Cc: bug-followup@FreeBSD.org
Subject: Re: kern/132104: kenv buffer overflow
Date: Wed, 25 Feb 2009 20:56:26 +0200

 Hi,
 
 On 2009-02-25, Dylan Cochran wrote:
 > This prevents the panic condition, but also increases the amount of
 > time the mutex is held. Comments?
 > 
 >  		mtx_lock(&kenv_lock);
 >  		cp = _getenv_dynamic(name, NULL);
 >  		if (cp != NULL) {
 > -			strcpy(buf, cp);
 > -			mtx_unlock(&kenv_lock);
 > -			len = strlen(buf) + 1;
 > +			len = strlen(cp) + 1;
 >  			ret = malloc(len, M_KENV, M_WAITOK);
 > -			strcpy(ret, buf);
 > +			strcpy(ret, cp);
 > +			mtx_unlock(&kenv_lock);
 
 malloc(9) with M_WAITOK flag could sleep. You are not allowed to sleep
 while holding a mutex.
 
 -- 
 Jaakko



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902251900.n1PJ0BA7073647>