[haiku-commits] Re: haiku: hrev49359 - in src: kits/tracker add-ons/kernel/file_systems/userlandfs/server/beos kits/network/libnetapi add-ons/print/drivers/pdf/source

  • From: Ingo Weinhold <ingo_weinhold@xxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 04 Jul 2015 10:41:36 +0200

On 03.07.2015 23:40, stpere@xxxxxxxxx wrote:

diff --git a/src/add-ons/print/drivers/pdf/source/PrinterSettings.cpp
b/src/add-ons/print/drivers/pdf/source/PrinterSettings.cpp
index 2aa0798..9658195 100644
--- a/src/add-ons/print/drivers/pdf/source/PrinterSettings.cpp
+++ b/src/add-ons/print/drivers/pdf/source/PrinterSettings.cpp
@@ -115,11 +115,13 @@ PrinterSettings::ReadSettings(BMessage *msg)
status_t
PrinterSettings::WriteSettings(BMessage* msg)
{
- size_t length;
+ ssize_t length;
char *data = NULL;
status_t err = B_ERROR;

length = msg->FlattenedSize();
+ if (length < B_OK)
+ return length;

You actually mean < 0.

data = (char *) malloc(length);
if (data != NULL) {
msg->Flatten(data, length);

[...]
diff --git a/src/kits/network/libnetapi/NetBuffer.cpp
b/src/kits/network/libnetapi/NetBuffer.cpp
index 5bc5869..bd05a68 100644
--- a/src/kits/network/libnetapi/NetBuffer.cpp
+++ b/src/kits/network/libnetapi/NetBuffer.cpp
@@ -202,7 +202,11 @@ BNetBuffer::AppendMessage(const BMessage& data)
{
char stackFlattenedData[STACK_BUFFER_SIZE];

- size_t dataSize = data.FlattenedSize();
+ ssize_t dataSize = data.FlattenedSize();
+
+ if (dataSize < B_OK)
+ return dataSize;

Here as well.

if (dataSize == 0)
return B_ERROR;

[...]
diff --git a/src/kits/tracker/Tracker.cpp b/src/kits/tracker/Tracker.cpp
index 1fae98a..18e80fe 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) {

... and > 0.

+ char* buffer = new char[size];
+ message.Flatten(buffer, size);
+ deskDir.WriteAttr(kAttrOpenWindows,
B_MESSAGE_TYPE, 0, buffer,
+ size);
+ delete[] buffer;
+ }
} else
deskDir.RemoveAttr(kAttrOpenWindows);
}

CU, Ingo


Other related posts: