summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Macht <holger@homac.de>2006-11-15 21:58:55 +0100
committerHolger Macht <holger@homac.de>2006-11-15 21:58:55 +0100
commit8fd5afef62b2105303170eca17bd1c13a9398085 (patch)
tree712c6fc7c9e0f5b3a0dbbe3520569216e0aaff0f
parent83e0cf3fa57c985555f4542330d394e72884c2c2 (diff)
add additional error checking for invalid parameters
-rw-r--r--liblazy/liblazy.h1
-rw-r--r--liblazy/liblazy_dbus.c12
-rw-r--r--liblazy/liblazy_hal.c12
-rw-r--r--liblazy/liblazy_polkit.c3
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);