Date: Tue, 20 Oct 2009 05:08:40 +0200 From: Polytropon <freebsd@edvax.de> To: FreeBSD-Questions@freebsd.org Cc: David Kelly <dkelly@hiwaay.net> Subject: Re: need C help, passing char buffer[] by-value.... Message-ID: <20091020050840.e452d7c1.freebsd@edvax.de> In-Reply-To: <20091019135805.GA35875@Grumpy.DynDNS.org> References: <20091019013337.GA9522@thought.org> <72213BBF-5E05-430D-BF9A-FCD2666951C6@hiwaay.net> <20091019054344.bb4822ca.freebsd@edvax.de> <20091019135805.GA35875@Grumpy.DynDNS.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 19 Oct 2009 08:58:05 -0500, David Kelly <dkelly@hiwaay.net> wrote: > On Mon, Oct 19, 2009 at 05:43:44AM +0200, Polytropon wrote: > > to make sure s is not NULL, or testing for it explicitely like > > > > if(!s) > > ... error handling here ... > > You are missing my point that *s == 0 is not a good out of bounds range > check. That's correct. Test != NULL just ensures that it is not a NULL pointer. Range checking should always be applied additionally. > strlen() knows nothing about the buffer allocation. As I originally > said, testing for null (and my example tested) is not foolproof but its > better than nothing. One should *also* test for the known end of the > allocated buffer. Yes. That's why an additional length parameter is a good choice, as well as maybe checing every individual character, e. g. checking for validity BEFORE doing something with it. -- Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ...
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091020050840.e452d7c1.freebsd>