Avoid comparisons of different signs

Comparisons if different signedness can result in unexpected results.
Add casts to ensure operants are of the same type.

    gettime.c: In function 'gettime':
    gettime.c:58:26: warning: comparison of integer expressions of different signedness: 'long long unsigned int' and 'time_t' {aka 'long int'} [-Wsign-compare]
       58 |         } else if (epoch > fallback) {
          |                          ^

Cast to time_t, since epoch is less than ULONG_MAX at this point.

    idmapping.c: In function 'write_mapping':
    idmapping.c:202:48: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
      202 |                 if ((written <= 0) || (written >= (bufsize - (pos - buf)))) {
          |                                                ^~

    newgidmap.c: In function ‘main’:
    newgidmap.c:178:40: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
      178 |         if ((written <= 0) || (written >= sizeof(proc_dir_name))) {
          |                                        ^~
    newuidmap.c: In function ‘main’:
    newuidmap.c:107:40: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
      107 |         if ((written <= 0) || (written >= sizeof(proc_dir_name))) {
          |                                        ^~
This commit is contained in:
Christian Göttsche 2023-01-24 16:05:20 +01:00 committed by Iker Pedrosa
parent 43508ac476
commit c99d8d0a08
4 changed files with 4 additions and 4 deletions

View File

@ -55,7 +55,7 @@
fprintf (shadow_logfd, fprintf (shadow_logfd,
_("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to %lu but was found to be: %llu\n"), _("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to %lu but was found to be: %llu\n"),
ULONG_MAX, epoch); ULONG_MAX, epoch);
} else if (epoch > fallback) { } else if ((time_t)epoch > fallback) {
fprintf (shadow_logfd, fprintf (shadow_logfd,
_("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to the current time (%lu) but was found to be: %llu\n"), _("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to the current time (%lu) but was found to be: %llu\n"),
fallback, epoch); fallback, epoch);

View File

@ -199,7 +199,7 @@ void write_mapping(int proc_dir_fd, int ranges, const struct map_range *mappings
mapping->upper, mapping->upper,
mapping->lower, mapping->lower,
mapping->count); mapping->count);
if ((written <= 0) || (written >= (bufsize - (pos - buf)))) { if ((written <= 0) || ((size_t)written >= (bufsize - (pos - buf)))) {
fprintf(log_get_logfd(), _("%s: snprintf failed!\n"), log_get_progname()); fprintf(log_get_logfd(), _("%s: snprintf failed!\n"), log_get_progname());
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }

View File

@ -175,7 +175,7 @@ int main(int argc, char **argv)
/* max string length is 6 + 10 + 1 + 1 = 18, allocate 32 bytes */ /* max string length is 6 + 10 + 1 + 1 = 18, allocate 32 bytes */
written = snprintf(proc_dir_name, sizeof(proc_dir_name), "/proc/%u/", written = snprintf(proc_dir_name, sizeof(proc_dir_name), "/proc/%u/",
target); target);
if ((written <= 0) || (written >= sizeof(proc_dir_name))) { if ((written <= 0) || ((size_t)written >= sizeof(proc_dir_name))) {
fprintf(stderr, "%s: snprintf of proc path failed: %s\n", fprintf(stderr, "%s: snprintf of proc path failed: %s\n",
Prog, strerror(errno)); Prog, strerror(errno));
} }

View File

@ -104,7 +104,7 @@ int main(int argc, char **argv)
/* max string length is 6 + 10 + 1 + 1 = 18, allocate 32 bytes */ /* max string length is 6 + 10 + 1 + 1 = 18, allocate 32 bytes */
written = snprintf(proc_dir_name, sizeof(proc_dir_name), "/proc/%u/", written = snprintf(proc_dir_name, sizeof(proc_dir_name), "/proc/%u/",
target); target);
if ((written <= 0) || (written >= sizeof(proc_dir_name))) { if ((written <= 0) || ((size_t)written >= sizeof(proc_dir_name))) {
fprintf(stderr, "%s: snprintf of proc path failed: %s\n", fprintf(stderr, "%s: snprintf of proc path failed: %s\n",
Prog, strerror(errno)); Prog, strerror(errno));
} }