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