From 65f81fb3c867e7d4a8743ee5ad7b2ec7a236d984 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 26 Nov 2008 10:44:48 -0800 Subject: [PATCH] client: fix use-after-free put_node at the end. --- src/client/Client.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index a1fa76b2accbd..c159a6b911651 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -1734,10 +1734,10 @@ void Client::remove_cap(Inode *in, int mds) in->caps.erase(mds); if (in->caps.empty()) { dout(15) << "remove_cap last one, closing snaprealm " << in->snaprealm << dendl; - put_inode(in); put_snap_realm(in->snaprealm); in->snaprealm = 0; in->snaprealm_item.remove_myself(); + put_inode(in); } } @@ -1747,10 +1747,10 @@ void Client::remove_all_caps(Inode *in) in->caps.clear(); if (!wasempty) { dout(15) << "remove_all_caps closing snaprealm " << in->snaprealm << dendl; - put_inode(in); put_snap_realm(in->snaprealm); in->snaprealm = 0; in->snaprealm_item.remove_myself(); + put_inode(in); } } -- 2.39.5