]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
rx: hold call->lock across RXS_PreparePacket
authorSimon Wilkinson <sxw@your-file-system.com>
Wed, 14 Mar 2012 14:56:06 +0000 (10:56 -0400)
committerDerrick Brashear <shadow@dementix.org>
Fri, 16 Mar 2012 02:50:21 +0000 (19:50 -0700)
RX Security Classes have a right to assume that when RXS_PreparePacket
is called that they have exclusive access to the rx_call structure.
Commit e445faa68c5ec6e47d3fd9d7318ade71d98703a9 unintentionally
failed to acquire the call->lock prior to RXS_PreparePacket being
called.

Reviewed-on: http://gerrit.openafs.org/6904
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 0fdcf171a8d2b2153648b6b799096e09eb469beb)

Change-Id: I19fbc3c9da5bbf607b41491404b70a87d68e033e
Reviewed-on: http://gerrit.openafs.org/6907
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>
src/rx/rx_packet.c

index 0402ed8a626595baee289b9f4c15a560d9d9d296..314504a7f737256236e2870183073965c47dfbff 100644 (file)
@@ -2754,8 +2754,8 @@ rxi_PrepareSendPacket(struct rx_call *call,
     }
     if (len)
         p->wirevec[i - 1].iov_len += len;
-    RXS_PreparePacket(conn->securityObject, call, p);
     MUTEX_ENTER(&call->lock);
+    RXS_PreparePacket(conn->securityObject, call, p);
 }
 
 /* Given an interface MTU size, calculate an adjusted MTU size that