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 <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c8b296450e
commit
4e1f87959c
@ -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] != '/'))
|
||||
|
Loading…
Reference in New Issue
Block a user