nfs4: Fix gIdMapper resource leak

Mounting another nfs4 volume loses reference to the previous idmapper
service. Thanks Stephan for pointing this out.
This commit is contained in:
Pawel Dziepak 2014-02-20 22:36:01 +01:00
parent 6a6d5a80a1
commit afc21e1367
1 changed files with 10 additions and 8 deletions

View File

@ -167,15 +167,17 @@ nfs4_mount(fs_volume* volume, const char* device, uint32 flags,
/* prepare idmapper server */ /* prepare idmapper server */
MutexLocker locker(gIdMapperLock); MutexLocker locker(gIdMapperLock);
gIdMapper = new(std::nothrow) IdMap; if (gIdMapper == NULL) {
if (gIdMapper == NULL) gIdMapper = new(std::nothrow) IdMap;
return B_NO_MEMORY; if (gIdMapper == NULL)
return B_NO_MEMORY;
result = gIdMapper->InitStatus(); result = gIdMapper->InitStatus();
if (result != B_OK) { if (result != B_OK) {
delete gIdMapper; delete gIdMapper;
gIdMapper = NULL; gIdMapper = NULL;
return result; return result;
}
} }
locker.Unlock(); locker.Unlock();