test get_git_work_tree() return value for NULL
PATCH 1/1 test get_git_work_tree() return value for NULL
If we are in a git directory, get_git_work_tree() can return NULL. While trying to determine whether or not the given paths are outside the work tree, the following command would read from it anyways and trigger a segmentation fault.
git diff / /
Signed-off-by Clemens Buchacher <[email protected]>
--- diff-no-index.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-)
diff-no-index.c +2 -4
@@ -150,16 +150,14 @@ static int queue_diff(struct diff_options *o,static int path_outside_repo (const char *path) { -/* -* We have already done setup_git_directory_gently() so we -* know we are inside a git work tree already. -*/ const char *work_tree;size_t len;if (!is_absolute_path (path))return 0 ; work_tree =get_git_work_tree (); +if (!work_tree) +return 1 ; len =strlen (work_tree);if (strncmp (path, work_tree, len) || (path[len] !='\0' && path[len] !='/' ))
Signature · 1 line
1.7.0.5.3.ga76e
Thanks.