From: Alex Riesen Date: Thu, 06 Apr 2006 14:11:22 GMT Subject: Re: unchecked uses of strdup Message-ID: <81b0412b0604060711o57fb110cm5fa559c0fd785a66@mail.gmail.com> In-Reply-To: <87d5fwau3z.fsf_-_@rho.meyering.net> On 4/5/06, Jim Meyering wrote: > There are pretty many uses of strdup in git's sources. > Here's one that can cause trouble if it ever returns NULL: > > [from fsck-objects.c] > static int fsck_head_link(void) > { > unsigned char sha1[20]; > const char *git_HEAD = strdup(git_path("HEAD")); > const char *git_refs_heads_master = resolve_ref(git_HEAD, sha1, 1); > > The problem is that resolve_ref does an unconditional `stat' > on the parameter corresponding to the maybe-NULL git_HEAD. That's actually alright (aside a nice core file). Worse are the cases where a NULL would cause some "normal" behaviour, e.g. arguments, which have a meaning for NULL value.