Re: [PATCH] kconfig: Fix checking return value of 'fwrite'

Arnaud Lacombe
2011-11-23T18:05:57Z

Hi,

2011/11/23 Reinhard Tartler <Reinhard.Tartler@informatik.uni-erlangen.de>:
> On Mi, Nov 23, 2011 at 06:53:51 (CET), Jean Sacren wrote:
>
>> From: Michal Marek <mmarek@suse.cz>
>> Date: Sun, 20 Nov 2011 14:24:35 +0100
>>>
>>> On 7.10.2011 05:29, Arnaud Lacombe wrote:
>>> > Hi,
>>> >
>>> > 2011/10/6 Reinhard Tartler <Reinhard.Tartler@informatik.uni-erlangen.de>:
>>> >> fwrite indicates '1' written member if a zero-length string is written.
>>> > you forgot the "Signed-off-by: " part :)
>>>
>>> Reinhard, can I assume
>>>
>>> Signed-off-by: Reinhard Tartler
>>> <Reinhard.Tartler@informatik.uni-erlangen.de>
>>>
>>> ? The patch is otherwise correct.
>>
>> I have two reasons to oppose this patch.
>>
>> 1. If 'len' value is zero, there is an issue already and it should be
>> taken care of _before_ calling fwrite().
>
> So you're saying the function assumes a non-empty string? Why?
AFAIK, fwrite(3) is currently used:
1) in comment printers. Empty comment are not allowed.
2) in a callback passed to expr_print(), where the string printed is
non-empty[0]
2) in the lexer, auto-generated, and unused

So Jean's point is valid, but for this comment to be pedantic, I would
not weakly test for `len > 0', but enforce assumptions above with an
assertion, by both converting the existing direct call to xfwrite()
and add `assert(len > 0)' before calling fwrite(3).

- Arnaud

[0]: symbol's name is either NULL or a non-empty string.