Re: printk %0*X is broken.

From: Vegard Nossum
Date: Wed May 06 2009 - 05:20:32 EST


2009/5/6 Li Zefan <lizf@xxxxxxxxxxxxxx>:
>> Vegard Nossum wrote:
>>> 2009/5/6 Ingo Molnar <mingo@xxxxxxx>:
>>>> Cc:-ed more folks who modified lib/vsprintf.c recently.
>>>>
>>>> Â Â Â ÂIngo
>>>>
>>>> * Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
>>>>
>>>>> it seems someone broke
>>>>>
>>>>> printk( Â "%0*X\n", width, x);
>>>>>
>>>>> looks like 0 is dumped.
>>> After %, we look for flags. The problem is that when a flag is found, we
>>> don't advance in the format string. And thus we start looking for the
>>> precision, which is read as 0, because we are still at the 0. I think
>>> this patch should fix it.
>>>
>
> No, we break out of the while loop when we can't find a flag,
> So we are at '*' after we found '0'.

> Lai Jiangshan wrote:
>> It seems that your patch does not change anything.
>> The code logic is still the same as before.

Oh really? So sorry, I didn't look close enough :-(


Vegard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/