diff options
| author | Toon Claes <toon@iotcl.com> | 2025-11-28 17:37:13 +0100 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-11-29 14:16:53 -0800 |
| commit | fe4e60759bfbf4eaca17949d3bbb204bb5c908a2 (patch) | |
| tree | 7641d932f697f46764a8e5284ed1cdfc53b5bd94 | |
| parent | 2a04e8c293766a4976ceceb4c663dd2963e0339e (diff) | |
| download | git-fe4e60759bfbf4eaca17949d3bbb204bb5c908a2.tar.gz | |
last-modified: fix use of uninitialized memory
git-last-modified(1) uses a scratch bitmap to keep track of paths that
have been changed between commits. To avoid reallocating a bitmap on
each call of process_parent(), the scratch bitmap is kept and reused.
Although, it seems an incorrect length is passed to memset(3).
`struct bitmap` uses `eword_t` to for internal storage. This type is
typedef'd to uint64_t. To fully zero the memory used by the bitmap,
multiply the length (saved in `struct bitmap::word_alloc`) by the size
of `eword_t`.
Reported-by: Anders Kaseorg <andersk@mit.edu>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Toon Claes <toon@iotcl.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | builtin/last-modified.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/last-modified.c b/builtin/last-modified.c index b0ecbdc540..cc5fd2e795 100644 --- a/builtin/last-modified.c +++ b/builtin/last-modified.c @@ -327,7 +327,7 @@ static void process_parent(struct last_modified *lm, if (!(parent->object.flags & PARENT1)) active_paths_free(lm, parent); - memset(lm->scratch->words, 0x0, lm->scratch->word_alloc); + memset(lm->scratch->words, 0x0, lm->scratch->word_alloc * sizeof(eword_t)); diff_queue_clear(&diff_queued_diff); } |
