Date: Wed, 29 Mar 2006 17:26:55 +0200 CEST

From: "Fran���is Revol"
Subject: [SDL] BeOS port fix: PrintScreen key crashing

It seems the latest SDL crashes when someone hits the PrtScrn key in
ZETA (BeOS R6), somewhere it gets a negative value as key code (or a
big unsigned maybe ?), and uses it as an index in the keysym table...
I'll investigate the cause for the negative value, but it's always
better to check for bounds correctly when indexing a table. The
attached diff fixes it.

Fran���is Revol
--
Software Architect
yellowTAB GmbH

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401621
This commit is contained in:
Sam Lantinga 2006-03-31 06:16:20 +00:00
parent 0756c83258
commit 403b4f89bd

View file

@ -478,7 +478,7 @@ public:
if (msg->FindInt32("key", &key) == B_OK && msg->FindInt32("modifiers", &modifiers) == B_OK) {
SDL_keysym keysym;
keysym.scancode = key;
if (key < 128) {
if ((key > 0) && (key < 128)) {
keysym.sym = keymap[key];
} else {
keysym.sym = SDLK_UNKNOWN;
@ -511,7 +511,7 @@ public:
if (msg->FindInt32("key", &key) == B_OK && msg->FindInt32("modifiers", &modifiers) == B_OK) {
SDL_keysym keysym;
keysym.scancode = key;
if (key < 128) {
if ((key > 0) && (key < 128)) {
keysym.sym = keymap[key];
} else {
keysym.sym = SDLK_UNKNOWN;