---
refs.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/refs.c b/refs.c
index 6695140cfe..8912798c1d 100644
--- a/refs.c
+++ b/refs.c
@@ -1571,25 +1571,23 @@ struct ref_store *get_submodule_ref_store(const char
*submodule)
refs = lookup_submodule_ref_store(submodule);
if (refs)
- return refs;
+ goto done;
strbuf_addstr(&submodule_sb, submodule);
ret = is_nonbare_repository_dir(&submodule_sb);
- strbuf_release(&submodule_sb);
if (!ret)
- return NULL;
+ goto done;
ret = submodule_to_gitdir(&submodule_sb, submodule);
- if (ret) {
- strbuf_release(&submodule_sb);
- return NULL;
- }
+ if (ret)
+ goto done;
/* pretend that add_submodule_odb() has been called */
refs = ref_store_init(submodule_sb.buf,
REF_STORE_READ | REF_STORE_ODB);
register_submodule_ref_store(refs, submodule);
+done:
strbuf_release(&submodule_sb);
return refs;
}
--
2.11.0.157.gd943d85