]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-callpostamble-deal-with-null-host-20060905
authorDerrick Brashear <shadow@dementia.org>
Tue, 5 Sep 2006 17:31:58 +0000 (17:31 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 5 Sep 2006 17:31:58 +0000 (17:31 +0000)
FIXES 38566

don't dereference garbage when no host was set

(cherry picked from commit 56bbd155db6941d915cf199f6e23cccfeb359ce8)

src/viced/afsfileprocs.c

index 0b18714b098e0b48e9a84ec6ccb6f48ace2ad486..aa574407c3795e098f79dcb75e73bdc2fbaf3bf9 100644 (file)
@@ -308,6 +308,8 @@ CallPreamble(register struct rx_call *acall, int activecall,
     char hoststr[16], hoststr2[16];
     struct ubik_client *uclient;
 
+    *ahostp = NULL;
+
     if (!tconn) {
        ViceLog(0, ("CallPreamble: unexpected null tconn!\n"));
        return -1;
@@ -427,14 +429,19 @@ CallPostamble(register struct rx_connection *aconn, afs_int32 ret,
     held = h_Held_r(thost);
     if (held)
        h_Release_r(thost);
-    if (ahost != thost) {
+    if (ahost && ahost != thost) {
        char hoststr[16], hoststr2[16]; 
        ViceLog(0, ("CallPostamble: ahost %s:%d (%x) != thost %s:%d (%x)\n",
-               afs_inet_ntoa_r(thost->host, hoststr), ntohs(thost->port),
+               afs_inet_ntoa_r(ahost->host, hoststr), ntohs(ahost->port),
                ahost, 
                afs_inet_ntoa_r(thost->host, hoststr2), ntohs(thost->port),
                thost));
        h_Release_r(ahost);
+    } else if (!ahost) {
+       char hoststr[16];       
+       ViceLog(0, ("CallPostamble: null ahost for thost %s:%d (%x)\n",
+               afs_inet_ntoa_r(thost->host, hoststr), ntohs(thost->port),
+               thost));
     }
     H_UNLOCK;
     return (translate ? sys_error_to_et(ret) : ret);