]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
rx: fix call refcount leak in error case
authorBenjamin Kaduk <kaduk@mit.edu>
Tue, 28 Nov 2017 04:07:53 +0000 (22:07 -0600)
committerBenjamin Kaduk <kaduk@mit.edu>
Tue, 28 Nov 2017 16:43:08 +0000 (11:43 -0500)
The recent event handling normalization in commit
304d758983b499dc568d6ca57b6e92df24b69de8 had event handlers switch
to dropping their reference on the associated connection/call just
before return.  An early return case was missed in the conversion,
leading to a refcount leak in an error case.

Reviewed-on: https://gerrit.openafs.org/12781
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 66b74e78ba5fea6a8236dcd3b8b46e1dfa6a0ac7)

Change-Id: I532c49b2ef6ec95dd26a99c02e12ea53348f9690
Reviewed-on: https://gerrit.openafs.org/12783
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
src/rx/rx.c

index ce9adcb433f87488673e368c0398340db3ca184c..9dc2e2bffcf06fe6a440b5b0de771b45b2fc2221 100644 (file)
@@ -6463,6 +6463,7 @@ rxi_KeepAliveEvent(struct rxevent *event, void *arg1, void *dummy,
 
     if (rxi_CheckCall(call, 0)) {
        MUTEX_EXIT(&call->lock);
+       CALL_RELE(call, RX_CALL_REFCOUNT_ALIVE);
        return;
     }