hrev43597 adds 1 changeset to branch 'master' old head: 9668d19918cfaca7f4c0b0f87245e135df4a79dc new head: e9132cc34c92f48eb61991047e030fef42a2e6fa ---------------------------------------------------------------------------- e9132cc: Time preferences: use std::nothrow variant of new operator Also make sure to avoid an eventual negative array size. CID 10934. [ Philippe Saint-Pierre <stpere@xxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev43597 Commit: e9132cc34c92f48eb61991047e030fef42a2e6fa URL: http://cgit.haiku-os.org/haiku/commit/?id=e9132cc Author: Philippe Saint-Pierre <stpere@xxxxxxxxx> Date: Mon Jan 2 18:54:39 2012 UTC ---------------------------------------------------------------------------- 1 files changed, 9 insertions(+), 8 deletions(-) src/preferences/time/NetworkTimeView.cpp | 17 +++++++++-------- ---------------------------------------------------------------------------- diff --git a/src/preferences/time/NetworkTimeView.cpp b/src/preferences/time/NetworkTimeView.cpp index 5a9b8ae..f5b8297 100644 --- a/src/preferences/time/NetworkTimeView.cpp +++ b/src/preferences/time/NetworkTimeView.cpp @@ -167,23 +167,24 @@ Settings::SettingsChanged() ssize_t oldSize = fOldMessage.FlattenedSize(); ssize_t newSize = fMessage.FlattenedSize(); - if (oldSize != newSize) + if (oldSize != newSize || oldSize < 0 || newSize < 0) return true; - char* oldBytes = new char[oldSize]; + char* oldBytes = new (std::nothrow) char[oldSize]; + if (oldBytes == NULL) + return true; fOldMessage.Flatten(oldBytes, oldSize); - char* newBytes = new char[newSize]; + char* newBytes = new (std::nothrow) char[newSize]; + if (newBytes == NULL) + return true; fMessage.Flatten(newBytes, newSize); - int result = memcmp(oldBytes, newBytes, oldSize); + int result = memcmp(oldBytes, newBytes, oldSize); delete[] oldBytes; delete[] newBytes; - if (result != 0) - return true; - else - return false; + return result != 0; }