Web lists-archives.com

[PATCH] upload-pack: fix some sparse warnings

Signed-off-by: Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxxx>

Hi Brandon,

If you need to re-roll your 'bw/protocol-v2' branch, could you please
squash this (or something like it) into the relevant patches. The first
hunk would go in commit 6ec1105192, "upload-pack: convert to a builtin",
2018-01-02), whereas the second hunk would go to commit b3f3749a24,
"upload-pack: factor out processing lines", 2018-01-02).

The sparse warnings were:

       SP upload-pack.c
   upload-pack.c:783:43: error: incompatible types for operation (<=)
   upload-pack.c:783:43:    left side has type int *depth
   upload-pack.c:783:43:    right side has type int
   upload-pack.c:783:43: error: incorrect type in conditional
   upload-pack.c:783:43:    got bad type
   upload-pack.c:1389:5: warning: symbol 'cmd_upload_pack' was not declared. Should it be static?

[Note that the line numbers are off-by-one.]

I note, in passing, that strtol() returns a 'long int' but *depth is
an 'int' (yes, the original code was like that too ;-) ).

Should cmd_upload_pack(), along with the #include "builtin.h", be moved
to builtin/upload-pack.c?

Also, I note that packet_read_with_status(), introduced in commit 4570421c3,
is not called outside of pkt-line.c; does this symbol need to be extern?


Ramsay Jones

 upload-pack.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/upload-pack.c b/upload-pack.c
index 8002f1f20..6271245e2 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -1,4 +1,5 @@
 #include "cache.h"
+#include "builtin.h"
 #include "config.h"
 #include "refs.h"
 #include "pkt-line.h"
@@ -780,7 +781,7 @@ static int process_deepen(const char *line, int *depth)
 	if (skip_prefix(line, "deepen ", &arg)) {
 		char *end = NULL;
 		*depth = strtol(arg, &end, 0);
-		if (!end || *end || depth <= 0)
+		if (!end || *end || *depth <= 0)
 			die("Invalid deepen: %s", line);
 		return 1;