Re: BUG: submodule code prints '(null)'
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Jun 9, 2018, 11:04 UTC
- Message-ID
- <20180609110414.GA5273@duynguyen.home>
- In-Reply-To
- <CACsJy8CNrQ-CKoJ+1NCR1rsO+v0ZNZ9CVAFsJpmcRWZY6HUtKw@mail.gmail.com>
On Tue, Jun 05, 2018 at 05:31:41PM +0200, Duy Nguyen wrote:
Show 7 quoted lines
> I do not know how to reproduce this (and didn't bother to look deeply > into it after I found it was not a trivial fix) but one of my "git > fetch" showed > > warning: Submodule in commit be2db96a6c506464525f588da59cade0cedddb5e > at path: '(null)' collides with a submodule named the same. Skipping > it.
The problem is default_name_or_path() can return NULL when a submodule is not populated. The fix could simply be printing path instead of name (because we are talking about path in the commit message), like below.
But I don't really understand c68f837576 (implement fetching of moved submodules - 2017-10-16), the commit that made this change, and not sure if we should be reporting name here or path. Heiko?
diff --git a/submodule.c b/submodule.c index 939d6870ec..61c2177755 100644 --- a/submodule.c +++ b/submodule.c @@ -745,7 +745,7 @@ static void collect_changed_submodules_cb(struct diff_queue_struct *q, warning("Submodule in commit %s at path: " "'%s' collides with a submodule named " "the same. Skipping it.", - oid_to_hex(commit_oid), name); + oid_to_hex(commit_oid), p->two->path); name = NULL; } } > > I think it's reported that some libc implementation will not be able > to gracefully handle NULL strings like glibc and may crash instead of > printing '(null)' here. I'll leave it to submodule people to fix this > :) > -- > Duy