Date: Mon, 7 Aug 2006 13:59:30 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?= <des@des.no> Cc: cvs-src@freebsd.org, Marcel Moolenaar <marcel@freebsd.org>, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/usr.sbin/kldxref kldxref.c Message-ID: <20060807133921.V6590@delplex.bde.org> In-Reply-To: <8664h6ci86.fsf@xps.des.no> References: <200608042128.k74LShD7052071@repoman.freebsd.org> <8664h6ci86.fsf@xps.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-2050910349-1154923170=:6590 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE On Sun, 6 Aug 2006, Dag-Erling [iso-8859-1] Sm=F8rgrav wrote: > Marcel Moolenaar <marcel@FreeBSD.org> writes: >> Log: >> Fix (static) buffer overflow bug. The dest buffer is of size MAXPATHLE= N, >> so dest[MAXPATHLEN] falls outside the buffer. This bug corrupted >> arenas[0] defined in libc's malloc.c on PowerPC when kldxref is shared= , >> which triggered a delayed SIGSERV. > > MAXPATHLEN should be spelled PATH_MAX. Actually, MAXPATHLEN is better since it is honestly unportable. It works on all [Free]BSD systems, while PATH_MAX only works on POSIX systems that define it. The correct spelling of PATH_MAX is {PATH_MAX} or: #if defined(PATH_MAX) && defined(OPTIMIZE_FOR_COMPILE_TIME_CONST_PATH_MAX) =09char buf[PATH_MAX]; =09... #else =09long path_max; =09path_max =3D pathconf(pathname_of_interest, _PC_PATH_MAX); =09if (path_max =3D=3D -1) =09=09handle_error(); =09assert(path_max > 0 && path_max <=3D SIZE_MAX) =09buf =3D malloc((size_t)path_max); =09if (buf =3D=3D NULL) =09=09handle_allocation_failure(); =09... #endif The correct spelling is too hard to use for simple unportable utilities like kldxref. Bruce --0-2050910349-1154923170=:6590--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060807133921.V6590>