--- dbus-sdp.c 2006-09-07 08:17:18.000000000 -0400 +++ ../../../bluez-utils-3.5/hcid/dbus-sdp.c 2006-09-08 07:11:28.000000000 -0400 @@ -444,8 +444,10 @@ int sk, err = 0; socklen_t len; const char *dst; + DBusError dbuserr; - dbus_message_get_args(ctxt->rq, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(ctxt->rq, &dbuserr, DBUS_TYPE_STRING, &dst, DBUS_TYPE_INVALID); @@ -481,6 +483,7 @@ DBusMessageIter iter, array_iter; const char *dst; int i, scanned; + DBusError dbuserr; if (!ctxt) return; @@ -497,7 +500,8 @@ return; } - dbus_message_get_args(ctxt->rq, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(ctxt->rq, &dbuserr, DBUS_TYPE_STRING, &dst, DBUS_TYPE_INVALID); @@ -540,6 +544,7 @@ uint8_t *pdata; uint8_t dataType = 0; int scanned, seqlen = 0; + DBusError dbuserr; if (!ctxt) return; @@ -556,7 +561,8 @@ return; } - dbus_message_get_args(ctxt->rq, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(ctxt->rq, &dbuserr, DBUS_TYPE_STRING, &dst, DBUS_TYPE_INVALID); @@ -612,6 +618,7 @@ const char *dst; uint8_t *pdata; int scanned = 0; + DBusError dbuserr; #ifdef SERVICE_SEARCH_ATTR_REQ uint8_t dataType = 0; int seqlen = 0; @@ -638,7 +645,8 @@ return; } - dbus_message_get_args(ctxt->rq, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(ctxt->rq, &dbuserr, DBUS_TYPE_STRING, &dst, DBUS_TYPE_INVALID); @@ -833,6 +841,7 @@ uint32_t range = 0x0000ffff; const char *dst; uint32_t handle; + DBusError dbuserr; int err = 0; if (sdp_set_notify(ctxt->session, remote_svc_rec_completed_cb, ctxt) < 0) { @@ -841,7 +850,8 @@ goto fail; } - dbus_message_get_args(ctxt->rq, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(ctxt->rq, &dbuserr, DBUS_TYPE_STRING, &dst, DBUS_TYPE_UINT32, &handle, DBUS_TYPE_INVALID); @@ -866,13 +876,20 @@ struct hci_dbus_data *dbus_data = data; const char *dst; uint32_t handle; + DBusError dbuserr; int err = 0; - if (!dbus_message_get_args(msg, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(msg, &dbuserr, DBUS_TYPE_STRING, &dst, DBUS_TYPE_UINT32, &handle, - DBUS_TYPE_INVALID)) + DBUS_TYPE_INVALID); + + if (dbus_error_is_set(&dbuserr)) { + error("Can't extract message arguments:%s", dbuserr.message); + dbus_error_free(&dbuserr); return error_invalid_arguments(conn, msg); + } if (find_pending_connect(dst)) return error_service_search_in_progress(conn, msg); @@ -923,12 +940,19 @@ { struct hci_dbus_data *dbus_data = data; const char *dst; + DBusError dbuserr; int err = 0; - if (!dbus_message_get_args(msg, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(msg, &dbuserr, DBUS_TYPE_STRING, &dst, - DBUS_TYPE_INVALID)) + DBUS_TYPE_INVALID); + + if (dbus_error_is_set(&dbuserr)) { + error("Can't extract message arguments:%s", dbuserr.message); + dbus_error_free(&dbuserr); return error_invalid_arguments(conn, msg); + } if (find_pending_connect(dst)) return error_service_search_in_progress(conn, msg); @@ -984,12 +1008,19 @@ { struct hci_dbus_data *dbus_data = data; const char *dst; + DBusError dbuserr; int err = 0; - if (!dbus_message_get_args(msg, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(msg, &dbuserr, DBUS_TYPE_STRING, &dst, - DBUS_TYPE_INVALID)) + DBUS_TYPE_INVALID); + + if (dbus_error_is_set(&dbuserr)) { + error("Can't extract message arguments:%s", dbuserr.message); + dbus_error_free(&dbuserr); return error_invalid_arguments(conn, msg); + } /* in progress is not working properly */ if (find_pending_connect(dst)) @@ -1062,15 +1093,22 @@ char identifier[MAX_IDENTIFIER_LEN]; const char *ptr = identifier; const char *dst, *svc; + DBusError dbuserr; int err = 0, nrec = 0; uint32_t class; uuid_t uuid; - if (!dbus_message_get_args(msg, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(msg, &dbuserr, DBUS_TYPE_STRING, &dst, DBUS_TYPE_STRING, &svc, - DBUS_TYPE_INVALID)) + DBUS_TYPE_INVALID); + + if (dbus_error_is_set(&dbuserr)) { + error("Can't extract message arguments:%s", dbuserr.message); + dbus_error_free(&dbuserr); return error_invalid_arguments(conn, msg); + } class = sdp_str2svclass(svc); if (!class) { @@ -1218,11 +1256,18 @@ char *ptr = uuid_str; const char *identifier; uint32_t handle; + DBusError dbuserr; - if (!dbus_message_get_args(msg, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(msg, &dbuserr, DBUS_TYPE_STRING, &identifier, - DBUS_TYPE_INVALID)) + DBUS_TYPE_INVALID); + + if (dbus_error_is_set(&dbuserr)) { + error("Can't extract message arguments:%s", dbuserr.message); + dbus_error_free(&dbuserr); return error_invalid_arguments(conn, msg); + } if (str2identifier(identifier, address, &handle) != 0) return error_invalid_arguments(conn, msg); @@ -1266,11 +1311,18 @@ const char *identifier; uuid_t *puuid; uint32_t handle; + DBusError dbuserr; - if (!dbus_message_get_args(msg, NULL, + dbus_error_init(&dbuserr); + dbus_message_get_args(msg, &dbuserr, DBUS_TYPE_STRING, &identifier, - DBUS_TYPE_INVALID)) + DBUS_TYPE_INVALID); + + if (dbus_error_is_set(&dbuserr)) { + error("Can't extract message arguments:%s", dbuserr.message); + dbus_error_free(&dbuserr); return error_invalid_arguments(conn, msg); + } if (str2identifier(identifier, address, &handle) != 0) return error_invalid_arguments(conn, msg); @@ -1312,11 +1364,13 @@ char identifier[MAX_IDENTIFIER_LEN]; const char *ptr = identifier; bdaddr_t sba; + DBusError dbuserr; int err = 0; uint8_t channel; owner = dbus_message_get_sender(msg); + dbus_error_init(&dbuserr); if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &name, DBUS_TYPE_BYTE, &channel, @@ -1367,11 +1421,13 @@ DBusMessage *reply; const char *owner, *identifier; bdaddr_t sba; + DBusError dbuserr; int err = 0; uint32_t handle; owner = dbus_message_get_sender(msg); + DBusError dbuserr; if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &identifier, DBUS_TYPE_INVALID))