[haiku-commits] haiku: hrev49530 - src/servers/app

  • From: stefano.ceccherini@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 12 Aug 2015 00:43:38 +0200 (CEST)

hrev49530 adds 1 changeset to branch 'master'
old head: f2de125b8c695e86bd3e896167553083b61e0908
new head: a48ef9e817eccd46437c6748246623ea5cb44e84
overview:
http://cgit.haiku-os.org/haiku/log/?qt=range&q=a48ef9e817ec+%5Ef2de125b8c69

----------------------------------------------------------------------------

a48ef9e817ec: AppServer: check for NULL bitmap.
Consistently check for NULL the ServerBitmap pointer.
There seems to be cases where BView::DragMessage could pass an invalid
Bitmap token to app_server.
Maybe it's when a client only bitmap is passed, I don't know.
Anyway, this is defensive programming, and at least we check for NULL
consistently now.
This fixes #11681.
Note that SuperFreeCell still crashes, but at least app_server doesn't crash.

[ Stefano Ceccherini <stefano.ceccherini@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision: hrev49530
Commit: a48ef9e817eccd46437c6748246623ea5cb44e84
URL: http://cgit.haiku-os.org/haiku/commit/?id=a48ef9e817ec
Author: Stefano Ceccherini <stefano.ceccherini@xxxxxxxxx>
Date: Tue Aug 11 22:40:06 2015 UTC

Ticket: https://dev.haiku-os.org/ticket/11681

----------------------------------------------------------------------------

2 files changed, 4 insertions(+), 2 deletions(-)
src/servers/app/EventDispatcher.cpp | 3 ++-
src/servers/app/ServerWindow.cpp | 3 ++-

----------------------------------------------------------------------------

diff --git a/src/servers/app/EventDispatcher.cpp
b/src/servers/app/EventDispatcher.cpp
index b45f3c9..9c8fb90 100644
--- a/src/servers/app/EventDispatcher.cpp
+++ b/src/servers/app/EventDispatcher.cpp
@@ -612,7 +612,8 @@ EventDispatcher::SetDragMessage(BMessage& message,

if (fLastButtons == 0) {
// mouse buttons has already been released or was never pressed
- bitmap->ReleaseReference();
+ if (bitmap != NULL)
+ bitmap->ReleaseReference();
return;
}

diff --git a/src/servers/app/ServerWindow.cpp b/src/servers/app/ServerWindow.cpp
index 242438f..fef86d0 100644
--- a/src/servers/app/ServerWindow.cpp
+++ b/src/servers/app/ServerWindow.cpp
@@ -2074,7 +2074,8 @@ fDesktop->UnlockSingleWindow();

fDesktop->EventDispatcher().SetDragMessage(dragMessage,
bitmap, offset);
fDesktop->LockSingleWindow();
- bitmap->ReleaseReference();
+ if (bitmap != NULL)
+
bitmap->ReleaseReference();
}
delete[] buffer;
}


Other related posts:

  • » [haiku-commits] haiku: hrev49530 - src/servers/app - stefano . ceccherini