From: Lennart Poettering Date: Thu, 15 Oct 2020 15:33:04 +0000 (+0200) Subject: util: make size macros unsigned X-Git-Tag: v247-rc1~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67bd5620f6cf481c0a59cedbcf63ddcab355cc55;p=thirdparty%2Fsystemd.git util: make size macros unsigned By making them unsigned comparing them with other sizes is less likely to trigger compiler warnings regarding signed/unsigned comparisons. After all sizes (i.e. size_t) are generally assumed to be unsigned, so these should be too. Prompted-by: https://github.com/systemd/systemd/pull/17345#issuecomment-709402332 --- diff --git a/src/basic/format-util.h b/src/basic/format-util.h index c47fa76ea8f..db37c16140c 100644 --- a/src/basic/format-util.h +++ b/src/basic/format-util.h @@ -72,11 +72,14 @@ typedef enum { FORMAT_BYTES_TRAILING_B = 1 << 2, } FormatBytesFlag; -#define FORMAT_BYTES_MAX 16 +#define FORMAT_BYTES_MAX 16U + char *format_bytes_full(char *buf, size_t l, uint64_t t, FormatBytesFlag flag); + static inline char *format_bytes(char *buf, size_t l, uint64_t t) { return format_bytes_full(buf, l, t, FORMAT_BYTES_USE_IEC | FORMAT_BYTES_BELOW_POINT | FORMAT_BYTES_TRAILING_B); } + static inline char *format_bytes_cgroup_protection(char *buf, size_t l, uint64_t t) { if (t == CGROUP_LIMIT_MAX) { (void) snprintf(buf, l, "%s", "infinity"); diff --git a/src/basic/time-util.h b/src/basic/time-util.h index cecd5efa604..6feda5e1559 100644 --- a/src/basic/time-util.h +++ b/src/basic/time-util.h @@ -63,10 +63,10 @@ typedef enum TimestampStyle { /* We assume a maximum timezone length of 6. TZNAME_MAX is not defined on Linux, but glibc internally initializes this * to 6. Let's rely on that. */ -#define FORMAT_TIMESTAMP_MAX (3+1+10+1+8+1+6+1+6+1) -#define FORMAT_TIMESTAMP_WIDTH 28 /* when outputting, assume this width */ -#define FORMAT_TIMESTAMP_RELATIVE_MAX 256 -#define FORMAT_TIMESPAN_MAX 64 +#define FORMAT_TIMESTAMP_MAX (3U+1U+10U+1U+8U+1U+6U+1U+6U+1U) +#define FORMAT_TIMESTAMP_WIDTH 28U /* when outputting, assume this width */ +#define FORMAT_TIMESTAMP_RELATIVE_MAX 256U +#define FORMAT_TIMESPAN_MAX 64U #define TIME_T_MAX (time_t)((UINTMAX_C(1) << ((sizeof(time_t) << 3) - 1)) - 1) diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c index 042d83c495c..0b6c2f88ed1 100644 --- a/src/cgtop/cgtop.c +++ b/src/cgtop/cgtop.c @@ -586,7 +586,7 @@ static void display(Hashmap *a) { Group **array; signed path_columns; unsigned rows, n = 0, j, maxtcpu = 0, maxtpath = 3; /* 3 for ellipsize() to work properly */ - char buffer[MAX3(21, FORMAT_BYTES_MAX, FORMAT_TIMESPAN_MAX)]; + char buffer[MAX3(21U, FORMAT_BYTES_MAX, FORMAT_TIMESPAN_MAX)]; assert(a); diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 4f25c643d23..f7d3e01b493 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -347,7 +347,7 @@ static int output_timestamp_monotonic(FILE *f, sd_journal *j, const char *monoto } static int output_timestamp_realtime(FILE *f, sd_journal *j, OutputMode mode, OutputFlags flags, const char *realtime) { - char buf[MAX(FORMAT_TIMESTAMP_MAX, 64)]; + char buf[MAX(FORMAT_TIMESTAMP_MAX, 64U)]; struct tm *(*gettime_r)(const time_t *, struct tm *); struct tm tm; uint64_t x;