Re: unchecked uses of strdup
- From
Alex Riesen <raa.lkml@gmail.com>
- Date
- Apr 6, 2006, 14:11 UTC
- Message-ID
- <81b0412b0604060711o57fb110cm5fa559c0fd785a66@mail.gmail.com>
- In-Reply-To
- <87d5fwau3z.fsf_-_@rho.meyering.net>
On 4/5/06, Jim Meyering <jim@meyering.net> wrote:
Show 12 quoted lines
> 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.