# [PATCH] sparse-index: fix uninitialized jump

2 messages from 2021-05-17 to 2021-05-17. Participants: Derrick Stolee via GitGitGadget, Junio C Hamano.
Thread: https://gitlist.dev/t/55709

## Derrick Stolee via GitGitGadget, 2021-05-17 12:22

Subject: [PATCH] sparse-index: fix uninitialized jump
Message-ID: <pull.953.git.1621254137590.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.953.git.1621254137590.gitgitgadget%40gmail.com

```
From: Derrick Stolee <dstolee@microsoft.com>

While testing the sparse-index, I verified a test with --valgrind and it
complained about an uninitialized value being used in a jump in the
path_matches_pattern_list() method. The line was this one:

	if (*dtype == DT_UNKNOWN)

In the call stack, the culprit was the initialization of the dtype
variable in convert_to_sparse_rec().

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
---
    Sparse-index: fix uninitialized variable
    
    I noticed this by accident while using --valgrind for a different
    reason. Seems like an easy fix.
    
    Thanks, -Stolee

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-953%2Fderrickstolee%2Fsparse-index%2Funinitialized-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-953/derrickstolee/sparse-index/uninitialized-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/953

 sparse-index.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sparse-index.c b/sparse-index.c
index b0d5dc5f081b..affc4048f279 100644
--- a/sparse-index.c
+++ b/sparse-index.c
@@ -34,7 +34,7 @@ static int convert_to_sparse_rec(struct index_state *istate,
 	int i, can_convert = 1;
 	int start_converted = num_converted;
 	enum pattern_match_result match;
-	int dtype;
+	int dtype = DT_UNKNOWN;
 	struct strbuf child_path = STRBUF_INIT;
 	struct pattern_list *pl = istate->sparse_checkout_patterns;
 

base-commit: bf949ade81106fbda068c1fdb2c6fd1cb1babe7e
-- 
gitgitgadget

```

## Junio C Hamano, 2021-05-17 21:45

Subject: Re: [PATCH] sparse-index: fix uninitialized jump
Message-ID: <xmqqo8d9590q.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqo8d9590q.fsf%40gitster.g
In-Reply-To: <pull.953.git.1621254137590.gitgitgadget@gmail.com>

```
"Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:

> From: Derrick Stolee <dstolee@microsoft.com>
>
> While testing the sparse-index, I verified a test with --valgrind and it
> complained about an uninitialized value being used in a jump in the
> path_matches_pattern_list() method. The line was this one:
>
> 	if (*dtype == DT_UNKNOWN)
>
> In the call stack, the culprit was the initialization of the dtype
> variable in convert_to_sparse_rec().
>
> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
> ---

Looks good.

> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-953%2Fderrickstolee%2Fsparse-index%2Funinitialized-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-953/derrickstolee/sparse-index/uninitialized-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/953
>
>  sparse-index.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sparse-index.c b/sparse-index.c
> index b0d5dc5f081b..affc4048f279 100644
> --- a/sparse-index.c
> +++ b/sparse-index.c
> @@ -34,7 +34,7 @@ static int convert_to_sparse_rec(struct index_state *istate,
>  	int i, can_convert = 1;
>  	int start_converted = num_converted;
>  	enum pattern_match_result match;
> -	int dtype;
> +	int dtype = DT_UNKNOWN;
>  	struct strbuf child_path = STRBUF_INIT;
>  	struct pattern_list *pl = istate->sparse_checkout_patterns;
>  
>
> base-commit: bf949ade81106fbda068c1fdb2c6fd1cb1babe7e

```
