[PATCH weston] clients: fix errno handling
Emilio Pozuelo Monfort
pochu27 at gmail.com
Wed Jan 18 11:44:53 UTC 2017
On 18/01/17 01:53, Peter Hutterer wrote:
> clients/editor.c: In function ‘read_file’:
> clients/editor.c:1578:16: warning: logical ‘or’ applied to non-boolean
> constant [-Wlogical-op]
> errno = errsv || EINVAL;
>
> This works in the shell, but not in C. Introduced in 411ffabbb56b
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> clients/editor.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/clients/editor.c b/clients/editor.c
> index f1dffe1..135dd9f 100644
> --- a/clients/editor.c
> +++ b/clients/editor.c
> @@ -1575,7 +1575,8 @@ error:
> if (fin)
> fclose(fin);
> free(buffer);
> - errno = errsv || EINVAL;
> + if (errsv == 0)
> + errno = EINVAL;
Shouldn't you add
else
errno = errsv;
?
Otherwise you may not return the original errno, but errno==0 instead (e.g. if
fclose() succeeded), which would be wrong.
Cheers,
Emilio
>
> return NULL;
> }
>
More information about the wayland-devel
mailing list