diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-05-13 21:19:20 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-05-13 21:19:20 +0200 |
commit | ce1adb11571f3196afa07642fdda37b6bbbc5aa4 (patch) | |
tree | 68b6f5d32a5b1d06f3d621229b00db095fd0c224 /unpack-trees.c | |
parent | Merge branch 'ss/submodule-set-url-in-c' (diff) | |
parent | unpack-trees: avoid array out-of-bounds error (diff) | |
download | git-ce1adb11571f3196afa07642fdda37b6bbbc5aa4.tar.xz git-ce1adb11571f3196afa07642fdda37b6bbbc5aa4.zip |
Merge branch 'ds/sparse-updates-oob-access-fix'
The code to skip unmerged paths in the index when sparse checkout
is in use would have made out-of-bound access of the in-core index
when the last path was unmerged, which has been corrected.
* ds/sparse-updates-oob-access-fix:
unpack-trees: avoid array out-of-bounds error
Diffstat (limited to 'unpack-trees.c')
-rw-r--r-- | unpack-trees.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/unpack-trees.c b/unpack-trees.c index 1fe3764f2b..02048dfdac 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -562,11 +562,11 @@ static int warn_conflicted_path(struct index_state *istate, add_rejected_path(o, WARNING_SPARSE_UNMERGED_FILE, conflicting_path); - /* Find out how many higher stage entries at same path */ - while (++count < istate->cache_nr && - !strcmp(conflicting_path, - istate->cache[i+count]->name)) - /* do nothing */; + /* Find out how many higher stage entries are at same path */ + while ((++count) + i < istate->cache_nr && + !strcmp(conflicting_path, istate->cache[count + i]->name)) + ; /* do nothing */ + return count; } |