svn commit: r197195 - head/sys/dev/asmc
Bruce Evans
brde at optusnet.com.au
Mon Sep 14 18:30:21 UTC 2009
On Mon, 14 Sep 2009, Rui Paulo wrote:
> Log:
> Fix previous commit. I got it backwards.
It is still unfixed.
> MFC after: 1 week
>
> Modified:
> head/sys/dev/asmc/asmc.c
>
> Modified: head/sys/dev/asmc/asmc.c
> ==============================================================================
> --- head/sys/dev/asmc/asmc.c Mon Sep 14 16:13:12 2009 (r197194)
> +++ head/sys/dev/asmc/asmc.c Mon Sep 14 16:16:07 2009 (r197195)
> @@ -824,7 +824,7 @@ out:
> type[5] = 0;
> if (maxlen > sizeof(v)) {
> device_printf(dev, "WARNING: cropping maxlen "
> - "from %u to %u\n", maxlen, sizeof(v));
> + "from %u to %lu\n", maxlen, sizeof(v));
> maxlen = sizeof(v);
> }
This printf has the following errors:
Fatal printf format error: values of type size_t should be printed
using %zu, but here sizeof(v) is printed using %lu. Printing it using
%u would be fatal on different systems.
Non-fatal printf format error: maxlen has type uint8_t, so its default
promotion is int, and this should be printed using %d like it was 2
commits ago. %u will work since the value is representable using both
int and u_int, but this is not easy to see (in fact, I can't see it
in C99 -- I can only see where C99 requires va_arg(ap, u_int) to work
on a u_int).
Format-printf error (style bug). The message is obfuscated using C90
string concatenation.
Fixed version:
device_printf(dev,
"WARNING: cropping maxlen from %d to %zu\n",
maxlen, sizeof(v));
Bruce
More information about the svn-src-all
mailing list