gpg-interface: address -Wsign-comparison warnings

There are a couple of -Wsign-comparison warnings in "gpg-interface.c". Most of them are trivial and simply using signed integers to loop towards an upper unsigned bound. But in `parse_signed_buffer()` we have one case where the different signedness of the two values of a ternary expression results in a warning. Given that: - `size` will always be bigger than `len` due to the loop condition. - `eol` will always be after `buf + len` because it is found via memchr(3p) starting from `buf + len`. We know that both values will always be natural integers. Squelch the warning by casting the left-hand side to `size_t`. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Patrick Steinhardt committed Dec 6, 2024 at 11:27 UTC 87318f2b6ed371814cb53c91a458b336f175b325
1 file changed +6 -9
gpg-interface.c
+6 -9
@@ -1,5 +1,4 @@
1 #define USE_THE_REPOSITORY_VARIABLE
2 -#define DISABLE_SIGN_COMPARE_WARNINGS
2
3 #include "git-compat-util.h"
4 #include "commit.h"
@@ -128,9 +127,7 @@ static struct gpg_format *use_format = &gpg_format[0];
127
128 static struct gpg_format *get_format_by_name(const char *str)
129 {
131 - int i;
132 -
133 - for (i = 0; i < ARRAY_SIZE(gpg_format); i++)
130 + for (size_t i = 0; i < ARRAY_SIZE(gpg_format); i++)
131 if (!strcmp(gpg_format[i].name, str))
132 return gpg_format + i;
133 return NULL;
@@ -138,9 +135,9 @@ static struct gpg_format *get_format_by_name(const char *str)
135
136 static struct gpg_format *get_format_by_sig(const char *sig)
137 {
141 - int i, j;
138 + int j;
139
143 - for (i = 0; i < ARRAY_SIZE(gpg_format); i++)
140 + for (size_t i = 0; i < ARRAY_SIZE(gpg_format); i++)
141 for (j = 0; gpg_format[i].sigs[j]; j++)
142 if (starts_with(sig, gpg_format[i].sigs[j]))
143 return gpg_format + i;
@@ -228,7 +225,7 @@ static void parse_gpg_output(struct signature_check *sigc)
225 {
226 const char *buf = sigc->gpg_status;
227 const char *line, *next;
231 - int i, j;
228 + int j;
229 int seen_exclusive_status = 0;
230
231 /* Iterate over all lines */
@@ -243,7 +240,7 @@ static void parse_gpg_output(struct signature_check *sigc)
240 continue;
241
242 /* Iterate over all search strings */
246 - for (i = 0; i < ARRAY_SIZE(sigcheck_gpg_status); i++) {
243 + for (size_t i = 0; i < ARRAY_SIZE(sigcheck_gpg_status); i++) {
244 if (skip_prefix(line, sigcheck_gpg_status[i].check, &line)) {
245 /*
246 * GOODSIG, BADSIG etc. can occur only once for
@@ -700,7 +697,7 @@ size_t parse_signed_buffer(const char *buf, size_t size)
697 match = len;
698
699 eol = memchr(buf + len, '\n', size - len);
703 - len += eol ? eol - (buf + len) + 1 : size - len;
700 + len += eol ? (size_t) (eol - (buf + len) + 1) : size - len;
701 }
702 return match;
703 }