From 3b1679f9c5fe19cbf2638791e2639ae460874cbc Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Fri, 24 Dec 2010 01:13:28 +0000 Subject: [PATCH] * CID 8120: The size supplied to the attach call was the one of the pointer, so the data was never correctly attached. * CID 5886 and 5887: escapements and offsets were not freed in the error case. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39930 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/ServerApp.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/servers/app/ServerApp.cpp b/src/servers/app/ServerApp.cpp index adaa3a6a43..65724f31da 100644 --- a/src/servers/app/ServerApp.cpp +++ b/src/servers/app/ServerApp.cpp @@ -1868,9 +1868,8 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link) fLink.Flush(); - for (int32 i = 0; i < numStrings; i++) { + for (int32 i = 0; i < numStrings; i++) free(stringArray[i]); - } break; } @@ -2239,13 +2238,12 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link) } } else fLink.StartMessage(status); - - delete[] escapements; - delete[] offsets; } else fLink.StartMessage(status); delete[] charArray; + delete[] escapements; + delete[] offsets; fLink.Flush(); break; } @@ -2406,8 +2404,11 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link) if (font.GetBoundingBoxes(charArray, numBytes, rectArray, stringEscapement, mode, delta, code == AS_GET_BOUNDINGBOXES_STRING) == B_OK) { + fLink.StartMessage(B_OK); - fLink.Attach(rectArray, sizeof(rectArray)); + for (int32 i = 0; i < numChars; i++) + fLink.Attach(rectArray[i]); + success = true; } }