From 265b7e0dfcd6431535562f6dc90ba92aeded88fd Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 25 Jun 2011 01:59:46 +0200 Subject: [PATCH] Missing locking when adding/removing package nodes --- src/add-ons/kernel/file_systems/packagefs/Volume.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/add-ons/kernel/file_systems/packagefs/Volume.cpp b/src/add-ons/kernel/file_systems/packagefs/Volume.cpp index b2cb66ba17..6ea71622bc 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Volume.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/Volume.cpp @@ -1029,6 +1029,7 @@ Volume::_AddPackageNode(Directory* directory, PackageNode* packageNode, } BReference nodeReference(node); + NodeWriteLocker nodeWriteLocker(node); status_t error = unpackingNode->AddPackageNode(packageNode); if (error != B_OK) { @@ -1075,6 +1076,7 @@ Volume::_RemovePackageNode(Directory* directory, PackageNode* packageNode, return; BReference nodeReference(node); + NodeWriteLocker nodeWriteLocker(node); PackageNode* headPackageNode = unpackingNode->GetPackageNode(); unpackingNode->RemovePackageNode(packageNode);