From: Yu Watanabe Date: Wed, 2 Feb 2022 03:11:26 +0000 (+0900) Subject: udev: do not generate format dynamically X-Git-Tag: v251-rc1~371^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f30943c12f5077c1a6ad27d68658f7b274d71ea7;p=thirdparty%2Fsystemd.git udev: do not generate format dynamically Prompted by LGTM. --- diff --git a/src/udev/udev-builtin-input_id.c b/src/udev/udev-builtin-input_id.c index 0e719108ed9..4c43080e8da 100644 --- a/src/udev/udev-builtin-input_id.c +++ b/src/udev/udev-builtin-input_id.c @@ -111,20 +111,20 @@ static void get_cap_mask(sd_device *pdev, const char* attr, else log_device_debug(pdev, "Ignoring %s block %lX which is larger than maximum size", attr, val); - if (test) { - /* printf pattern with the right unsigned long number of hex chars */ - xsprintf(text, " bit %%4u: %%0%zulX\n", - 2 * sizeof(unsigned long)); + if (test && DEBUG_LOGGING) { log_device_debug(pdev, "%s decoded bit map:", attr); + val = bitmask_size / sizeof (unsigned long); - /* skip over leading zeros */ + /* skip trailing zeros */ while (bitmask[val-1] == 0 && val > 0) --val; - for (unsigned long j = 0; j < val; j++) { - DISABLE_WARNING_FORMAT_NONLITERAL; - log_device_debug(pdev, text, j * BITS_PER_LONG, bitmask[j]); - REENABLE_WARNING; - } + + /* IN_SET() cannot be used in assert_cc(). */ + assert_cc(sizeof(unsigned long) == 4 || sizeof(unsigned long) == 8); + for (unsigned long j = 0; j < val; j++) + log_device_debug(pdev, + sizeof(unsigned long) == 4 ? " bit %4lu: %08lX\n" : " bit %4lu: %016lX\n", + j * BITS_PER_LONG, bitmask[j]); } }