Tracker: check result of FlattenedSize() for error
This commit is contained in:
@@ -428,12 +428,14 @@ TTracker::QuitRequested()
|
|||||||
if (!BootedInSafeMode() && FSGetDeskDir(&deskDir) == B_OK) {
|
if (!BootedInSafeMode() && FSGetDeskDir(&deskDir) == B_OK) {
|
||||||
// if message is empty, delete the corresponding attribute
|
// if message is empty, delete the corresponding attribute
|
||||||
if (message.CountNames(B_ANY_TYPE)) {
|
if (message.CountNames(B_ANY_TYPE)) {
|
||||||
size_t size = (size_t)message.FlattenedSize();
|
ssize_t size = message.FlattenedSize();
|
||||||
char* buffer = new char[size];
|
if (size > B_OK) {
|
||||||
message.Flatten(buffer, (ssize_t)size);
|
char* buffer = new char[size];
|
||||||
deskDir.WriteAttr(kAttrOpenWindows, B_MESSAGE_TYPE, 0, buffer,
|
message.Flatten(buffer, size);
|
||||||
size);
|
deskDir.WriteAttr(kAttrOpenWindows, B_MESSAGE_TYPE, 0, buffer,
|
||||||
delete[] buffer;
|
size);
|
||||||
|
delete[] buffer;
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
deskDir.RemoveAttr(kAttrOpenWindows);
|
deskDir.RemoveAttr(kAttrOpenWindows);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user