On Fri, Mar 07, 2014 at 11:38:03AM +0300, Dan Carpenter wrote:
> Hello Ken Cox,
>
> The patch e423812a9e43: "staging: visorchannel module" from Mar 4,
> 2014, leads to the following Smatch warning:
>
> drivers/staging/unisys/include/guidutils.h:60 GUID_format2()
> error: format string overflow. buf_size: 50 length: 63
>
> drivers/staging/unisys/include/guidutils.h
> 57 static inline char *
> 58 GUID_format2(const GUID *guid, char *s)
> 59 {
> 60 sprintf(s,
> "{%-8.8lx-%-4.4x-%-4.4x-%-2.2x%-2.2x-%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x}",
> 61 (ulong) guid->data1,
> 62 guid->data2,
> 63 guid->data3,
> 64 guid->data4[0],
> 65 guid->data4[1],
> 66 guid->data4[2],
> 67 guid->data4[3],
> 68 guid->data4[4], guid->data4[5], guid->data4[6],
> guid->data4[7]);
> 69 return s;
> 70 }
>
> The 50 character buf size comes from the CHANNEL_GUID_MISMATCH() macros.
> I'm not sure how it's calculating that it takes 63 characters. printf
> formats make my head hurt. My test said the max was 95 characters?
There should be a built-in guid printk() macro (or function to do it)
already in the kernel, so this code should be able to just be deleted
entirely.
thanks,
greg k-h
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel