From 45a167a94d4a9c16e060ff830a271bb654405b81 Mon Sep 17 00:00:00 2001 From: Alex Wilson Date: Mon, 26 Jul 2010 08:02:33 +0000 Subject: [PATCH] In BUnarchiver::IsInstantiated(), catch a possible NULL dereference, make archive parameter to BUnarchiver::IsArchiveManaged() const. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37751 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/os/support/Archivable.h | 2 +- src/kits/support/Archivable.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/headers/os/support/Archivable.h b/headers/os/support/Archivable.h index 6f15977375..076a2a8ace 100644 --- a/headers/os/support/Archivable.h +++ b/headers/os/support/Archivable.h @@ -129,7 +129,7 @@ public: void AssumeOwnership(BArchivable* archivable); void RelinquishOwnership(BArchivable* archivable); - static bool IsArchiveManaged(BMessage* archive); + static bool IsArchiveManaged(const BMessage* archive); static BMessage* PrepareArchive(BMessage*& archive); template diff --git a/src/kits/support/Archivable.cpp b/src/kits/support/Archivable.cpp index 2b08106446..7f84a20123 100644 --- a/src/kits/support/Archivable.cpp +++ b/src/kits/support/Archivable.cpp @@ -452,6 +452,7 @@ BUnarchiver::FindObject(const char* name, bool BUnarchiver::IsInstantiated(int32 token) { + _CallDebuggerIfManagerNull(); return fManager->IsInstantiated(token); } @@ -504,7 +505,7 @@ BUnarchiver::RelinquishOwnership(BArchivable* archivable) bool -BUnarchiver::IsArchiveManaged(BMessage* archive) +BUnarchiver::IsArchiveManaged(const BMessage* archive) { // managed child archives will return here if (BManagerBase::ManagerPointer(archive))