Commit df1733deb9eb7b4125bd994ea7b441712788e181

Edward Thomson 2018-07-16T05:16:41

checkout tests: ensure readlink succeeds Don't try to use `link_size` as an index into a string if `p_readlink` returned <0. That will - obviously - fail and we'll write out of bounds.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
diff --git a/tests/checkout/index.c b/tests/checkout/index.c
index 4523626..270059b 100644
--- a/tests/checkout/index.c
+++ b/tests/checkout/index.c
@@ -185,9 +185,11 @@ void test_checkout_index__honor_coresymlinks_default(void)
 		check_file_contents("./symlink/link_to_new.txt", "new.txt");
 	} else {
 		char link_data[1024];
-		size_t link_size = 1024;
+		int link_size = 1024;
 
 		link_size = p_readlink("./symlink/link_to_new.txt", link_data, link_size);
+		cl_assert(link_size >= 0);
+
 		link_data[link_size] = '\0';
 		cl_assert_equal_i(link_size, strlen("new.txt"));
 		cl_assert_equal_s(link_data, "new.txt");