Commit 40f6f225175375b41317b0a4e98e8865600d1682

Patrick Steinhardt 2016-02-15T10:58:52

coverity: hint that string length is at least 2 When checking if a string is prefixed by a drive letter (e.g. "C:") we verify this by inspecting the first and second character of the string. Coverity thinks this is a defect as we do not check the string's length first, but in fact we only check the second character if the first character is part of the alphabet, that is it cannot be '\0'. Fix this by overriding the macro and explicitly checking the string's length.

1
2
3
4
5
6
7
8
9
10
diff --git a/script/user_nodefs.h b/script/user_nodefs.h
index f890511..3d25d92 100644
--- a/script/user_nodefs.h
+++ b/script/user_nodefs.h
@@ -23,3 +23,5 @@
 	if (GIT_MULTIPLY_SIZET_OVERFLOW(out, nelem, elsize)) { __coverity_panic__(); }
 
 #nodef GITERR_CHECK_VERSION(S,V,N) if (giterr__check_version(S,V,N) < 0)  { __coverity_panic__(); }
+
+#nodef LOOKS_LIKE_DRIVE_PREFIX(S) (strlen(S) >= 2 && git__isalpha((S)[0]) && (S)[1] == ':')