Hi Jerry, On Thu, 2025-04-03 at 19:37 -0600, Jerry Hoemann wrote: > Decode of Version Data Format 0E is five bytes, not four. > > Fixes: 9d2bbd5db427b063da ("dmioem: Decode HPE OEM Record 216") > Signed-off-by: Jerry Hoemann <jerry.hoem...@hpe.com> > --- > dmioem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/dmioem.c b/dmioem.c > index 1df77ec..0cc16a9 100644 > --- a/dmioem.c > +++ b/dmioem.c > @@ -580,7 +580,7 @@ static void dmi_hp_216_version(u8 format, u8 *data) > pr_attr(name, "%d", data[0]); > break; > case 14: > - pr_attr(name, "%d.%d.%d.%d", data[0], data[1], data[2], > data[3]); > + pr_attr(name, "%d.%d.%d.%.4d", data[0], data[1], data[2], > WORD(data+3));
I'd rather use %04d for consistency, as it seems to behave the same as %.4d (to be honest, I don't understand why precision is supported with %d in the first place). Also, is WORD(data+3) guaranteed to be < 9999? If not then left padding to 4 digit is kind of inconsistent. Lastly, I must say I'm surprised that you zero-pad only the last component of the version string. But you'll know better. > break; > case 15: > pr_attr(name, "%d.%d.%d.%d (%.2d/%.2d/%d)", -- Jean Delvare SUSE L3 Support