Commit 6d97beb91f413f4e90bab76fc7e05495bb0aab70

Carlos Martín Nieto 2016-02-25T15:46:59

pack: don't allow a negative offset

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
diff --git a/src/pack.c b/src/pack.c
index b9b22a2..52c6521 100644
--- a/src/pack.c
+++ b/src/pack.c
@@ -365,9 +365,14 @@ static unsigned char *pack_window_open(
 	 * pointless to ask for an offset into the middle of that
 	 * hash, and the pack_window_contains function above wouldn't match
 	 * don't allow an offset too close to the end of the file.
+	 *
+	 * Don't allow a negative offset, as that means we've wrapped
+	 * around.
 	 */
 	if (offset > (p->mwf.size - 20))
 		return NULL;
+	if (offset < 0)
+		return NULL;
 
 	return git_mwindow_open(&p->mwf, w_cursor, offset, 20, left);
  }