* We might have a superproject, but it is harder
* to determine.
*/
- return 0;
+ goto out;
if (!strbuf_realpath(&one_up, "../", 0))
- return 0;
+ goto out;
subpath = relative_path(cwd, one_up.buf, &sb);
- strbuf_release(&one_up);
prepare_submodule_repo_env(&cp.env);
strvec_pop(&cp.env);
ret = 1;
free(super_wt);
}
- free(cwd);
- strbuf_release(&sb);
code = finish_command(&cp);
if (code == 128)
/* '../' is not a git repository */
- return 0;
- if (code == 0 && len == 0)
+ ret = 0;
+ else if (code == 0 && len == 0)
/* There is an unrelated git repository at '../' */
- return 0;
- if (code)
+ ret = 0;
+ else if (code)
die(_("ls-tree returned unexpected return code %d"), code);
+out:
+ strbuf_release(&sb);
+ strbuf_release(&one_up);
+ free(cwd);
return ret;
}