On Thu, Feb 21, 2013 at 7:27 PM, Per Cederqvist <cederp@xxxxxxxxx> 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 -m"Added a". > touch b; git add b; git commit -m"Added 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 0x00000000004046ac 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 0x0000000000404df3 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 majordomo@xxxxxxxxxxxxxxx > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html