From: Andrew Deason Date: Thu, 30 May 2013 22:40:58 +0000 (-0500) Subject: ihandle: Fix fdInUseCount leak on EMFILE X-Git-Tag: upstream/1.8.0_pre1^2~1118 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=48344381d7a87a3617ec14ffc9f2d9735805ada6;p=packages%2Fo%2Fopenafs.git ihandle: Fix fdInUseCount leak on EMFILE Here, we close closeFd, but currently we don't decrement fdInUseCount. Since we retry the open immediately afterwards, this means we can leak fdInUseCount references. For example, if we retry this 5 times and get EMFILE on each attempt, we will close 5 FDs, but not decrement fdInUseCount at all. To fix this, decrement fdInUseCounter when we close a file for EMFILE. Change-Id: I347e37a8d670a6dde7e1d24eeb893c145d9e34e5 Reviewed-on: http://gerrit.openafs.org/9967 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/vol/ihandle.c b/src/vol/ihandle.c index d903c016c..8c8b82a3e 100644 --- a/src/vol/ihandle.c +++ b/src/vol/ihandle.c @@ -395,6 +395,9 @@ ih_open_retry: fdP->fd_fd = INVALID_FD; IH_UNLOCK; OS_CLOSE(closeFd); + IH_LOCK; + fdInUseCount -= 1; + IH_UNLOCK; goto ih_open_retry; } } else {