]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix compilation with systemtap 1.3
authorMatthias Bolte <matthias.bolte@googlemail.com>
Tue, 28 Jun 2011 22:33:09 +0000 (00:33 +0200)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Tue, 28 Jun 2011 23:53:44 +0000 (01:53 +0200)
Version 1.3 of <sys/sdt.h> uses this macro

  #define STAP_CAST(t) (size_t)t

that breaks like this if t is a function

  remote.c:1775: error: cast from function call of type 'const char *'
  to non-matching type 'long unsigned int' [-Wbad-function-cast]

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

index 9547702961f07439eba1e03ed5eb001a90fc9864..9e6cf77f279c0a06579940b0ca4ca86403c2cc93 100644 (file)
@@ -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: