Eric Blake wrote:
On 05/18/2010 04:33 AM, Jim Meyering wrote:
> Simple...
>
>>From f5ee09ed08473478b3ea3135d51125fbf687e402 Mon Sep 17 00:00:00 2001
> From: Jim Meyering <meyering(a)redhat.com>
> Date: Tue, 18 May 2010 12:32:39 +0200
> Subject: [PATCH] tests: do not ignore virInitialize failure
>
> * tests/nodeinfotest.c (mymain): Do not ignore virInitialize failure.
> Most other callers of virInitialize test for failure.
> ---
> tests/nodeinfotest.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/tests/nodeinfotest.c b/tests/nodeinfotest.c
> index ff056b9..d3c500d 100644
> --- a/tests/nodeinfotest.c
> +++ b/tests/nodeinfotest.c
> @@ -106,7 +106,8 @@ mymain(int argc, char **argv)
> return(EXIT_FAILURE);
> }
>
> - virInitialize();
> + if (virInitialize() < 0)
> + return EXIT_FAILURE;
Shouldn't we be adding ATTRIBUTE_RETURN_CHECK to virInitialize in the
appropriate header, to let the compiler enforce us to do the checking?
That would be nice, but the declaration of virInitialize
is in libvirt.h.in, and I am leery of adding new symbols in such
an exposed header, in spite of the few that are already there, e.g.,
#ifndef VIR_DEPRECATED
/* The feature is present in gcc-3.1 and newer. */
# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
# define VIR_DEPRECATED __attribute__((__deprecated__))
# else
# define VIR_DEPRECATED /* nothing */
# endif
#endif /* VIR_DEPRECATED */
Since my change does address the coverity-spotted problem,
I'd prefer to keep this small and defer the more proactive
(but riskier) change to a separate change set.