summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/net/retry.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/net/retry.c b/src/net/retry.c
index 0aa165abb..7e20f0c8a 100644
--- a/src/net/retry.c
+++ b/src/net/retry.c
@@ -148,6 +148,7 @@ void stop_timer ( struct retry_timer *timer ) {
* @v timer Retry timer
*/
static void timer_expired ( struct retry_timer *timer ) {
+ struct refcnt *refcnt = timer->refcnt;
int fail;
/* Stop timer without performing RTT calculations */
@@ -169,8 +170,9 @@ static void timer_expired ( struct retry_timer *timer ) {
/* Call expiry callback */
timer->expired ( timer, fail );
+ /* If refcnt is NULL, then timer may already have been freed */
- ref_put ( timer->refcnt );
+ ref_put ( refcnt );
}
/**