Re: A little mystery - crash caused by empty commit message.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 10, 2009 at 12:15:54PM +0100, Tor Arvid Lund wrote:

> Then I tried copying the repository to a linux box and tried gdb
> there. Much better. strchr(line, '\n') is called in pretty.c in the
> get_header function. For one of the commits, the 'line' parameter was
> NULL, so I managed to make it not crash with this little patch:
> 
> diff --git a/pretty.c b/pretty.c
> index 8d4dbc9..1b2d097 100644
> --- a/pretty.c
> +++ b/pretty.c
> @@ -230,6 +230,8 @@ static char *get_header(const struct commit
> *commit, const char *key)
>        const char *line = commit->buffer;
> 
>        for (;;) {
> +               if (line == NULL)
> +                       return NULL;
>                const char *eol = strchr(line, '\n'), *next;
> 
>                if (line == eol)

Hmm. I can't reproduce the crash here with an empty commit message. I
tried:

  mkdir repo && cd repo && git init &&
  touch file && git add . &&
  tree=`git write-tree`
  commit=`git commit-tree $tree </dev/null`
  git update-ref HEAD $commit
  git log

Are you sure it's truly an _empty_ commit message? Can you try

  git cat-file commit f67f77edf06bbcebabf430735c751245a4b70f14

and look at the result with xxd, hd, or similar.

> But the question is then - how did I manage to get my repository in
> this state? The commit in question was made by me - I know I entered a
> message when I committed it. I can even find the commit *with* the
> original commit message in another branch... I am sorry to say that my

It _is_ generally hard to get an empty commit message using "git
commit". But it's possible there is a bug in cherry-pick, rebase, or
some ohter low-level tool that accidentally erased your message
as the commit was moved.

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux