From 189c10b089932ebb034337d71410153d6737775d Mon Sep 17 00:00:00 2001 From: Philippe Saint-Pierre Date: Fri, 3 Jul 2015 14:48:40 -0400 Subject: [PATCH] Tracker: check result of FlattenedSize() for error --- src/kits/tracker/Tracker.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/kits/tracker/Tracker.cpp b/src/kits/tracker/Tracker.cpp index 1fae98a835..18e80feca3 100644 --- a/src/kits/tracker/Tracker.cpp +++ b/src/kits/tracker/Tracker.cpp @@ -428,12 +428,14 @@ TTracker::QuitRequested() if (!BootedInSafeMode() && FSGetDeskDir(&deskDir) == B_OK) { // if message is empty, delete the corresponding attribute if (message.CountNames(B_ANY_TYPE)) { - size_t size = (size_t)message.FlattenedSize(); - char* buffer = new char[size]; - message.Flatten(buffer, (ssize_t)size); - deskDir.WriteAttr(kAttrOpenWindows, B_MESSAGE_TYPE, 0, buffer, - size); - delete[] buffer; + ssize_t size = message.FlattenedSize(); + if (size > B_OK) { + char* buffer = new char[size]; + message.Flatten(buffer, size); + deskDir.WriteAttr(kAttrOpenWindows, B_MESSAGE_TYPE, 0, buffer, + size); + delete[] buffer; + } } else deskDir.RemoveAttr(kAttrOpenWindows); }