[libvirt] [PATCH v2 07/11] rpc: annotate various parameters as being required to be non-NULL
John Ferlan
jferlan at redhat.com
Thu Feb 1 12:14:26 UTC 2018
On 02/01/2018 06:57 AM, John Ferlan wrote:
>
>
> On 01/23/2018 08:23 AM, Daniel P. Berrange wrote:
>> The server name and client data callbacks need to be non-NULL or the
>> system will crash at various times. This is particularly bad when some
>> of the crashes only occur post-exec restart.
>>
>> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
>> ---
>> src/rpc/virnetserver.h | 7 +++++--
>> src/rpc/virnetserverclient.h | 7 +++++--
>> 2 files changed, 10 insertions(+), 4 deletions(-)
>>
>
> My Coverity build was not happy this morning...
>
>> diff --git a/src/rpc/virnetserverclient.h b/src/rpc/virnetserverclient.h
>> index 3c48759abc..4a0d3cc25e 100644
>> --- a/src/rpc/virnetserverclient.h
>> +++ b/src/rpc/virnetserverclient.h
>> @@ -72,14 +72,17 @@ virNetServerClientPtr virNetServerClientNew(unsigned long long id,
>> virNetServerClientPrivNew privNew,
>> virNetServerClientPrivPreExecRestart privPreExecRestart,
>> virFreeCallback privFree,
>> - void *privOpaque);
>> + void *privOpaque)
>> + ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(7) ATTRIBUTE_NONNULL(9);
>
> This one caused the Coverity build to fail because virNetServerClientNew
> checks "if (privNew)" before assigning client->privateData
>
Also wouldn't the NONNULL's need to change based on "#ifdef WITH_GNUTLS"
for arguments after #5?
>>
>> virNetServerClientPtr virNetServerClientNewPostExecRestart(virNetServerPtr srv,
>> virJSONValuePtr object,
>> virNetServerClientPrivNewPostExecRestart privNew,
>> virNetServerClientPrivPreExecRestart privPreExecRestart,
>> virFreeCallback privFree,
>> - void *privOpaque);
>> + void *privOpaque)
>> + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
>> + ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5);
>
> Likewise here too for virNetServerClientNewPostExecRestart w/ privNew
>
> Finally, the "tests/virnetserverclienttest.c fails to build because of
> the NULL argument check.
>
And virnetdaemontest.c...
John
More information about the libvir-list
mailing list