diff options
author | René Scharfe <l.s.r@web.de> | 2017-06-24 17:09:39 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-06-24 21:09:52 +0300 |
commit | 70c49050d4a16a7e2990e4d3c91d9d12f62e631e (patch) | |
tree | 0de8a7ca24f711dfe2f982eb94a5dbe346b2bbe2 /builtin | |
parent | 0375f472d484041f9b1e5550b57d69286b3322e7 (diff) |
sha1_file: guard against invalid loose subdirectory numbers
Loose object subdirectories have hexadecimal names based on the first
byte of the hash of contained objects, thus their numerical
representation can range from 0 (0x00) to 255 (0xff). Change the type
of the corresponding variable in for_each_file_in_obj_subdir() and
associated callback functions to unsigned int and add a range check.
Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/fsck.c | 2 | ||||
-rw-r--r-- | builtin/prune-packed.c | 2 | ||||
-rw-r--r-- | builtin/prune.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/builtin/fsck.c b/builtin/fsck.c index b5e13a4556..2686951381 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -537,7 +537,7 @@ static int fsck_cruft(const char *basename, const char *path, void *data) return 0; } -static int fsck_subdir(int nr, const char *path, void *progress) +static int fsck_subdir(unsigned int nr, const char *path, void *progress) { display_progress(progress, nr + 1); return 0; diff --git a/builtin/prune-packed.c b/builtin/prune-packed.c index c026299e78..ac978ad401 100644 --- a/builtin/prune-packed.c +++ b/builtin/prune-packed.c @@ -10,7 +10,7 @@ static const char * const prune_packed_usage[] = { static struct progress *progress; -static int prune_subdir(int nr, const char *path, void *data) +static int prune_subdir(unsigned int nr, const char *path, void *data) { int *opts = data; display_progress(progress, nr + 1); diff --git a/builtin/prune.c b/builtin/prune.c index 42633e0c6e..ea208c97f8 100644 --- a/builtin/prune.c +++ b/builtin/prune.c @@ -68,7 +68,7 @@ static int prune_cruft(const char *basename, const char *path, void *data) return 0; } -static int prune_subdir(int nr, const char *path, void *data) +static int prune_subdir(unsigned int nr, const char *path, void *data) { if (!show_only) rmdir(path); |