]> git.ipfire.org Git - thirdparty/git.git/commitdiff
gpg-interface: address -Wsign-comparison warnings
authorPatrick Steinhardt <ps@pks.im>
Fri, 6 Dec 2024 10:27:27 +0000 (11:27 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Dec 2024 11:20:04 +0000 (20:20 +0900)
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>
gpg-interface.c

index a67d80475bf9d8452de0c3ae9bb08ceeb4c11c4b..0896458de5a9889bf5951d9703c37a67e20d3e1a 100644 (file)
@@ -1,5 +1,4 @@
 #define USE_THE_REPOSITORY_VARIABLE
-#define DISABLE_SIGN_COMPARE_WARNINGS
 
 #include "git-compat-util.h"
 #include "commit.h"
@@ -128,9 +127,7 @@ static struct gpg_format *use_format = &gpg_format[0];
 
 static struct gpg_format *get_format_by_name(const char *str)
 {
-       int i;
-
-       for (i = 0; i < ARRAY_SIZE(gpg_format); i++)
+       for (size_t i = 0; i < ARRAY_SIZE(gpg_format); i++)
                if (!strcmp(gpg_format[i].name, str))
                        return gpg_format + i;
        return NULL;
@@ -138,9 +135,9 @@ static struct gpg_format *get_format_by_name(const char *str)
 
 static struct gpg_format *get_format_by_sig(const char *sig)
 {
-       int i, j;
+       int j;
 
-       for (i = 0; i < ARRAY_SIZE(gpg_format); i++)
+       for (size_t i = 0; i < ARRAY_SIZE(gpg_format); i++)
                for (j = 0; gpg_format[i].sigs[j]; j++)
                        if (starts_with(sig, gpg_format[i].sigs[j]))
                                return gpg_format + i;
@@ -228,7 +225,7 @@ static void parse_gpg_output(struct signature_check *sigc)
 {
        const char *buf = sigc->gpg_status;
        const char *line, *next;
-       int i, j;
+       int j;
        int seen_exclusive_status = 0;
 
        /* Iterate over all lines */
@@ -243,7 +240,7 @@ static void parse_gpg_output(struct signature_check *sigc)
                        continue;
 
                /* Iterate over all search strings */
-               for (i = 0; i < ARRAY_SIZE(sigcheck_gpg_status); i++) {
+               for (size_t i = 0; i < ARRAY_SIZE(sigcheck_gpg_status); i++) {
                        if (skip_prefix(line, sigcheck_gpg_status[i].check, &line)) {
                                /*
                                 * GOODSIG, BADSIG etc. can occur only once for
@@ -700,7 +697,7 @@ size_t parse_signed_buffer(const char *buf, size_t size)
                        match = len;
 
                eol = memchr(buf + len, '\n', size - len);
-               len += eol ? eol - (buf + len) + 1 : size - len;
+               len += eol ? (size_t) (eol - (buf + len) + 1) : size - len;
        }
        return match;
 }