Re: git branch HEAD dumps core when on detached head (NULL pointer dereference)

2013-02-21 Thread Duy Nguyen
On Thu, Feb 21, 2013 at 7:27 PM, Per Cederqvist ced...@opera.com wrote:
 Running git branch HEAD may be a stupid thing to do. It actually
 was a mistake on my part. Still, I don't think git should dereference
 a NULL pointer.

We should not. Can you make a patch to fix it (with test cases)? You
may want to fix the two preceding blocks, if (new_upstream) and if
(unset_upstream), as well. They don't check for NULL branch either. I
think we can say something like detached HEAD is not valid for this
operation before exit.


 Tested using git 1.8.1.4 adn 1.8.1.1.

 Repeat by:

 mkdir branchcrash || exit 1
 cd branchcrash
 git init
 touch a; git add a; git commit -mAdded a.
 touch b; git add b; git commit -mAdded b.
 git checkout HEAD^
 git branch HEAD

 The last command dumps core.  gdb session:

 gdb /usr/local/bin/git core
 GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
 Copyright (C) 2012 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later
 http://gnu.org/licenses/gpl.html
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.  Type show copying
 and show warranty for details.
 This GDB was configured as x86_64-linux-gnu.
 For bug reporting instructions, please see:
 http://bugs.launchpad.net/gdb-linaro/...
 Reading symbols from /usr/local/bin/git...done.
 [New LWP 7174]

 warning: Can't read pathname for load map: Input/output error.
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library /lib/x86_64-linux-gnu/libthread_db.so.1.
 Core was generated by `git branch HEAD'.
 Program terminated with signal 11, Segmentation fault.
 #0  cmd_branch (argc=1, argv=0x7fffe6e2a0f0, prefix=optimized out)
 at builtin/branch.c:919
 919 strbuf_addf(buf, refs/remotes/%s, branch-name);
 (gdb) bt
 #0  cmd_branch (argc=1, argv=0x7fffe6e2a0f0, prefix=optimized out)
 at builtin/branch.c:919
 #1  0x004046ac in run_builtin (argv=0x7fffe6e2a0f0, argc=2,
 p=optimized out) at git.c:273
 #2  handle_internal_command (argc=2, argv=0x7fffe6e2a0f0) at git.c:434
 #3  0x00404df3 in run_argv (argv=0x7fffe6e29f90,
 argcp=0x7fffe6e29f9c)
 at git.c:480
 #4  main (argc=2, argv=0x7fffe6e2a0f0) at git.c:555
 (gdb) p branch
 $1 = (struct branch *) 0x0
 (gdb) quit

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



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


Re: git branch HEAD dumps core when on detached head (NULL pointer dereference)

2013-02-21 Thread Per Cederqvist

On 02/21/13 13:50, Duy Nguyen wrote:

On Thu, Feb 21, 2013 at 7:27 PM, Per Cederqvist ced...@opera.com wrote:

Running git branch HEAD may be a stupid thing to do. It actually
was a mistake on my part. Still, I don't think git should dereference
a NULL pointer.


We should not. Can you make a patch to fix it (with test cases)? You
may want to fix the two preceding blocks, if (new_upstream) and if
(unset_upstream), as well. They don't check for NULL branch either. I
think we can say something like detached HEAD is not valid for this
operation before exit.


Sorry, but isolating the issue reporting it here is about as much time
as I can spend on this issue. Learning the coding standard of Git and
how to write test cases is not something I'm prepared to do, at least
not at the moment. I hope there is a place for users and reporters of
bugs in the Git community.

/ceder



Tested using git 1.8.1.4 adn 1.8.1.1.

Repeat by:

 mkdir branchcrash || exit 1
 cd branchcrash
 git init
 touch a; git add a; git commit -mAdded a.
 touch b; git add b; git commit -mAdded b.
 git checkout HEAD^
 git branch HEAD

The last command dumps core.  gdb session:

gdb /usr/local/bin/git core
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type show copying
and show warranty for details.
This GDB was configured as x86_64-linux-gnu.
For bug reporting instructions, please see:
http://bugs.launchpad.net/gdb-linaro/...
Reading symbols from /usr/local/bin/git...done.
[New LWP 7174]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library /lib/x86_64-linux-gnu/libthread_db.so.1.
Core was generated by `git branch HEAD'.
Program terminated with signal 11, Segmentation fault.
#0  cmd_branch (argc=1, argv=0x7fffe6e2a0f0, prefix=optimized out)
 at builtin/branch.c:919
919 strbuf_addf(buf, refs/remotes/%s, branch-name);
(gdb) bt
#0  cmd_branch (argc=1, argv=0x7fffe6e2a0f0, prefix=optimized out)
 at builtin/branch.c:919
#1  0x004046ac in run_builtin (argv=0x7fffe6e2a0f0, argc=2,
 p=optimized out) at git.c:273
#2  handle_internal_command (argc=2, argv=0x7fffe6e2a0f0) at git.c:434
#3  0x00404df3 in run_argv (argv=0x7fffe6e29f90,
argcp=0x7fffe6e29f9c)
 at git.c:480
#4  main (argc=2, argv=0x7fffe6e2a0f0) at git.c:555
(gdb) p branch
$1 = (struct branch *) 0x0
(gdb) quit

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






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


Re: git branch HEAD dumps core when on detached head (NULL pointer dereference)

2013-02-21 Thread Duy Nguyen
On Thu, Feb 21, 2013 at 8:24 PM, Per Cederqvist ced...@opera.com wrote:
 Sorry, but isolating the issue reporting it here is about as much time
 as I can spend on this issue. Learning the coding standard of Git and
 how to write test cases is not something I'm prepared to do, at least
 not at the moment. I hope there is a place for users and reporters of
 bugs in the Git community.

Sure. No problem. I just thought you might want to finish it off. I'll
look into it.
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html