[libvirt] [PATCH v2 07/11] rpc: annotate various parameters as being required to be non-NULL

Daniel P. Berrange berrange at redhat.com
Tue Jan 23 13:23:43 UTC 2018


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(-)

diff --git a/src/rpc/virnetserver.h b/src/rpc/virnetserver.h
index 7728a67f5f..a79c39fdb2 100644
--- a/src/rpc/virnetserver.h
+++ b/src/rpc/virnetserver.h
@@ -47,7 +47,8 @@ virNetServerPtr virNetServerNew(const char *name,
                                 virNetServerClientPrivNew clientPrivNew,
                                 virNetServerClientPrivPreExecRestart clientPrivPreExecRestart,
                                 virFreeCallback clientPrivFree,
-                                void *clientPrivOpaque);
+                                void *clientPrivOpaque)
+    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(11) ATTRIBUTE_NONNULL(13);
 
 virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
                                                const char *name,
@@ -55,7 +56,9 @@ virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
                                                virNetServerClientPrivNewPostExecRestart clientPrivNewPostExecRestart,
                                                virNetServerClientPrivPreExecRestart clientPrivPreExecRestart,
                                                virFreeCallback clientPrivFree,
-                                               void *clientPrivOpaque);
+                                               void *clientPrivOpaque)
+    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
+    ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5) ATTRIBUTE_NONNULL(6);
 
 void virNetServerClose(virNetServerPtr srv);
 
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);
 
 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);
 
 virJSONValuePtr virNetServerClientPreExecRestart(virNetServerClientPtr client);
 
-- 
2.14.3




More information about the libvir-list mailing list