[libvirt] [PATCH] Fix compliation with systemtap 1.3

Matthias Bolte matthias.bolte at googlemail.com
Tue Jun 28 22:34:27 UTC 2011


Version 1.3 uses this macro

  #define STAP_CAST(t) (size_t)t

that breaks if t is a function. For that to work it should probably
look like this

  #define STAP_CAST(t) ((size_t)(t))

In systemtap 1.4 this was completely rewritten.

Anyway, before commit df0b57a95a767c t was always a variable, but now
also a function is used here, namely virNetSASLSessionGetIdentity.

Use an intermediate variable to avoid this problem.
---
 daemon/remote.c |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/daemon/remote.c b/daemon/remote.c
index 9547702..9e6cf77 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -1759,13 +1759,13 @@ remoteSASLFinish(virNetServerClientPtr client)
     if (virNetServerClientSetIdentity(client, identity) < 0)
         goto error;
 
-
     virNetServerClientSetSASLSession(client, priv->sasl);
 
     VIR_DEBUG("Authentication successful %d", virNetServerClientGetFD(client));
+
+    identity = virNetSASLSessionGetIdentity(priv->sasl);
     PROBE(CLIENT_AUTH_ALLOW, "fd=%d, auth=%d, username=%s",
-          virNetServerClientGetFD(client), REMOTE_AUTH_SASL,
-          virNetSASLSessionGetIdentity(priv->sasl));
+          virNetServerClientGetFD(client), REMOTE_AUTH_SASL, identity);
 
     virNetSASLSessionFree(priv->sasl);
     priv->sasl = NULL;
@@ -1793,6 +1793,7 @@ remoteDispatchAuthSaslStart(virNetServerPtr server ATTRIBUTE_UNUSED,
     int rv = -1;
     struct daemonClientPrivate *priv =
         virNetServerClientGetPrivateData(client);
+    const char *identity;
 
     virMutexLock(&priv->lock);
 
@@ -1856,9 +1857,9 @@ authfail:
     goto error;
 
 authdeny:
+    identity = virNetSASLSessionGetIdentity(priv->sasl);
     PROBE(CLIENT_AUTH_DENY, "fd=%d, auth=%d, username=%s",
-          virNetServerClientGetFD(client), REMOTE_AUTH_SASL,
-          virNetSASLSessionGetIdentity(priv->sasl));
+          virNetServerClientGetFD(client), REMOTE_AUTH_SASL, identity);
     goto error;
 
 error:
@@ -1888,7 +1889,7 @@ remoteDispatchAuthSaslStep(virNetServerPtr server ATTRIBUTE_UNUSED,
     int rv = -1;
     struct daemonClientPrivate *priv =
         virNetServerClientGetPrivateData(client);
-
+    const char *identity;
 
     virMutexLock(&priv->lock);
 
@@ -1952,9 +1953,9 @@ authfail:
     goto error;
 
 authdeny:
+    identity = virNetSASLSessionGetIdentity(priv->sasl);
     PROBE(CLIENT_AUTH_DENY, "fd=%d, auth=%d, username=%s",
-          virNetServerClientGetFD(client), REMOTE_AUTH_SASL,
-          virNetSASLSessionGetIdentity(priv->sasl));
+          virNetServerClientGetFD(client), REMOTE_AUTH_SASL, identity);
     goto error;
 
 error:
-- 
1.7.0.4




More information about the libvir-list mailing list