[haiku-commits] haiku: hrev48677 - src/system/libroot/os

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 14 Jan 2015 13:46:42 +0100 (CET)

hrev48677 adds 1 changeset to branch 'master'
old head: bcb793d37b1e20d0329ea5bafa5095198fa8f7d2
new head: 1736cb1d596076b3f727bbe501b15be4ada7b769
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=1736cb1d5960+%5Ebcb793d37b1e

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

1736cb1d5960: driver_settings: fix allocating an empty settings
  
  I misread the condition and broke this in 0687a01. Thanks to Axel for
  reviewing!
  * Refactor the code again to move all the error checking at the top of
  the function, to make it easier to read.

                                 [ Adrien Destugues <pulkomandy@xxxxxxxxx> ]

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

Revision:    hrev48677
Commit:      1736cb1d596076b3f727bbe501b15be4ada7b769
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1736cb1d5960
Author:      Adrien Destugues <pulkomandy@xxxxxxxxx>
Date:        Wed Jan 14 12:39:35 2015 UTC

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

1 file changed, 10 insertions(+), 11 deletions(-)
src/system/libroot/os/driver_settings.cpp | 21 ++++++++++-----------

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

diff --git a/src/system/libroot/os/driver_settings.cpp 
b/src/system/libroot/os/driver_settings.cpp
index 065092e..17a6473 100644
--- a/src/system/libroot/os/driver_settings.cpp
+++ b/src/system/libroot/os/driver_settings.cpp
@@ -828,19 +828,18 @@ load_driver_settings_file(int fd)
 void *
 parse_driver_settings_string(const char *settingsString)
 {
-       if (settingsString == NULL)
-               return NULL;
-
-       // we simply copy the whole string to use it as our internal buffer
-       char *text = strdup(settingsString);
-       if (text != NULL) {
-               settings_handle *handle = new_settings(text, NULL);
-               if (handle == NULL)
-                       free(text);
-               return handle;
+       char *text = NULL;
+       if (settingsString != NULL) {
+               // we simply copy the whole string to use it as our internal 
buffer
+               text = strdup(settingsString);
+               if (text == NULL)
+                       return NULL;
        }
 
-       return NULL;
+       settings_handle *handle = new_settings(text, NULL);
+       if (handle == NULL)
+               free(text);
+       return handle;
 }
 
 


Other related posts: