diff --git a/src/apps/bin/keymap/Keymap.cpp b/src/apps/bin/keymap/Keymap.cpp index ec134b3d58..cb32c625d6 100644 --- a/src/apps/bin/keymap/Keymap.cpp +++ b/src/apps/bin/keymap/Keymap.cpp @@ -267,7 +267,8 @@ Keymap::Load(entry_ref &ref) if (!fChars) delete[] fChars; fChars = new char[fCharsSize]; - err = file.Read(fChars, fCharsSize); + if (file.Read(fChars, fCharsSize) != fCharsSize) + return B_BAD_VALUE; return B_OK; } diff --git a/src/servers/input/InputServer.cpp b/src/servers/input/InputServer.cpp index 97b5d1d200..9a896f8c72 100644 --- a/src/servers/input/InputServer.cpp +++ b/src/servers/input/InputServer.cpp @@ -186,27 +186,24 @@ InputServer::LoadKeymap() status_t err; BFile file(&ref, B_READ_ONLY); - if ((err = file.InitCheck()) != B_OK) { - printf("error %s\n", strerror(err)); + if ((err = file.InitCheck()) != B_OK) return err; - } - if (file.Read(&fKeys, sizeof(fKeys)) < (ssize_t)sizeof(fKeys)) { + if (file.Read(&fKeys, sizeof(fKeys)) < (ssize_t)sizeof(fKeys)) return B_BAD_VALUE; - } for (uint32 i=0; i