[haiku-commits] haiku: hrev43597 - src/preferences/time

  • From: stpere@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 2 Jan 2012 19:59:48 +0100 (CET)

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;
 }
 
 


Other related posts:

  • » [haiku-commits] haiku: hrev43597 - src/preferences/time - stpere