diff options
author | Holger Macht <holger@homac.de> | 2006-11-15 21:58:55 +0100 |
---|---|---|
committer | Holger Macht <holger@homac.de> | 2006-11-15 21:58:55 +0100 |
commit | 8fd5afef62b2105303170eca17bd1c13a9398085 (patch) | |
tree | 712c6fc7c9e0f5b3a0dbbe3520569216e0aaff0f | |
parent | 83e0cf3fa57c985555f4542330d394e72884c2c2 (diff) |
add additional error checking for invalid parameters
-rw-r--r-- | liblazy/liblazy.h | 1 | ||||
-rw-r--r-- | liblazy/liblazy_dbus.c | 12 | ||||
-rw-r--r-- | liblazy/liblazy_hal.c | 12 | ||||
-rw-r--r-- | liblazy/liblazy_polkit.c | 3 |
4 files changed, 26 insertions, 2 deletions
diff --git a/liblazy/liblazy.h b/liblazy/liblazy.h index 59bc82f..e3ce8a4 100644 --- a/liblazy/liblazy.h +++ b/liblazy/liblazy.h @@ -37,6 +37,7 @@ extern "C" { * @{ */ #define LIBLAZY_ERROR_GENERAL -1 +#define LIBLAZY_ERROR_INVALID_ARGUMENT -2 #define LIBLAZY_ERROR_HAL_NOT_READY -10 #define LIBLAZY_ERROR_HAL_NO_SUCH_PROPERTY -11 diff --git a/liblazy/liblazy_dbus.c b/liblazy/liblazy_dbus.c index d98fc4d..2a1d919 100644 --- a/liblazy/liblazy_dbus.c +++ b/liblazy/liblazy_dbus.c @@ -184,9 +184,14 @@ int liblazy_dbus_message_get_basic_arg(DBusMessage *message, int type, int current_type; DBusMessageIter iter; int x = 0; - int ret = -1; + int ret = LIBLAZY_ERROR_GENERAL; int _no = 0; + if (message == NULL) { + ERROR("Passing in NULL for message argument invalid"); + return ret; + } + for (dbus_message_iter_init(message, &iter); (current_type = dbus_message_iter_get_arg_type(&iter)) != DBUS_TYPE_INVALID; x++, dbus_message_iter_next(&iter)) { @@ -241,9 +246,12 @@ int liblazy_dbus_message_get_strlist_arg(DBusMessage *message, int current_type; DBusMessageIter iter; int x = 0; - int ret = -1; + int ret = LIBLAZY_ERROR_GENERAL; int _no = 0; + if (message == NULL) + return LIBLAZY_ERROR_INVALID_ARGUMENT; + for (dbus_message_iter_init(message, &iter); (current_type = dbus_message_iter_get_arg_type(&iter)) != DBUS_TYPE_INVALID; x++, dbus_message_iter_next(&iter)) { diff --git a/liblazy/liblazy_hal.c b/liblazy/liblazy_hal.c index bd15dc0..3837d6e 100644 --- a/liblazy/liblazy_hal.c +++ b/liblazy/liblazy_hal.c @@ -41,6 +41,9 @@ static int liblazy_hal_property_exists(char *udi, char *property) int exists = 0; DBusMessage *reply; + if (udi == NULL || property == NULL) + return LIBLAZY_ERROR_INVALID_ARGUMENT; + error = liblazy_dbus_system_send_method_call(DBUS_HAL_SERVICE, udi, DBUS_HAL_DEVICE_INTERFACE, @@ -69,6 +72,9 @@ static int liblazy_hal_get_property(char *udi, char *property, char *method, int error = 0; DBusMessage *reply; + if (udi == NULL || property == NULL ) + return LIBLAZY_ERROR_INVALID_ARGUMENT; + error = liblazy_dbus_system_send_method_call(DBUS_HAL_SERVICE, udi, DBUS_HAL_DEVICE_INTERFACE, @@ -159,6 +165,9 @@ int liblazy_hal_get_property_strlist(char *udi, char *property, char ***strlist) int error = 0; DBusMessage *reply; + if (udi == NULL || property == NULL ) + return LIBLAZY_ERROR_INVALID_ARGUMENT; + error = liblazy_hal_property_exists(udi, property); if (!error) { strlist[0] = NULL; @@ -191,6 +200,9 @@ int liblazy_hal_query_capability(char *udi, char *capability) int error = -1; char **caps = NULL; + if (udi == NULL || capability == NULL ) + return LIBLAZY_ERROR_INVALID_ARGUMENT; + error = liblazy_hal_get_property_strlist(udi, "info.capabilities", &caps); if (caps != NULL && !error) { for (i = 0; caps[i] != NULL; i++) { diff --git a/liblazy/liblazy_polkit.c b/liblazy/liblazy_polkit.c index 0a2db2f..452f20e 100644 --- a/liblazy/liblazy_polkit.c +++ b/liblazy/liblazy_polkit.c @@ -47,6 +47,9 @@ int liblazy_polkit_is_user_allowed_by_name(char *user, int is_allowed; int error = 0; + if (user == NULL || privilege == NULL ) + return LIBLAZY_ERROR_INVALID_ARGUMENT; + dbus_error_init(&dbus_error); dbus_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &dbus_error); |