
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@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