GVariant *var = NULL;
g_variant_get(parameters, "(a{sv})", &iter);
+ if (!iter) {
+ ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
+ goto failed;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "Mode"))
g_variant_get(var, "b", &mode);
const char *ssid = NULL;
g_variant_get(parameters, "(a{sv})", &iter);
+ if (!iter) {
+ ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
+ goto failed;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "ssid")) {
g_variant_get(var, "&s", &ssid);
__WDS_LOG_FUNC_ENTER__;
DBUS_DEBUG_VARIANT(variant);
+
g_variant_get(variant, "a{sv}", &iter);
+ if (!iter) {
+ __WDS_LOG_FUNC_EXIT__;
+ return;
+ }
+
while (g_variant_iter_loop(iter, "{sv}", &key, &value)) {
WDS_LOGD("%s %s", key, g_variant_get_string(value, &value_length));
txt_length += strlen(key);
DBUS_DEBUG_VARIANT(variant);
g_variant_get(variant, "as", &iter);
+
+ if (!iter)
+ return;
+
while (g_variant_iter_loop(iter, "s", &key)) {
seek_length += strlen(key);
seek_length += 1;
gchar *key = NULL;
GVariant *var = NULL;
+ if (!iter)
+ return;
+
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "adv_id"))
g_variant_get(var, "u", &(service->adv_id));
gchar *key = NULL;
GVariant *var = NULL;
+ if (!iter)
+ return;
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "discovery_tech"))
g_variant_get(var, "i", &(service->discovery_tech));
unsigned char role = 0;
unsigned int config = 0;
+ if (!iter)
+ return;
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "service_mac")) {
const char *mac_str = NULL;
const char *pin = NULL;
+ if (!iter)
+ return;
+
while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
if (!g_strcmp0(key, "service_mac")) {
goto failed;
}
- memset(&service, 0, sizeof(wfd_oem_asp_service_s));
g_variant_get(parameters, "(a{sv})", &iter);
+ if (!iter) {
+ ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
+ goto failed;
+ }
+
+ memset(&service, 0, sizeof(wfd_oem_asp_service_s));
__get_asp_advertise_params(iter, &service, &replace);
ret = wfd_oem_advertise_service(manager->oem_ops, &service, replace);
if (ret < 0) {
goto failed;
}
- memset(&service, 0, sizeof(wfd_oem_asp_service_s));
g_variant_get(parameters, "(a{sv})", &iter);
+ if (!iter) {
+ ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
+ goto failed;
+ }
+
+ memset(&service, 0, sizeof(wfd_oem_asp_service_s));
__get_asp_seek_params(iter, &service);
ret = wfd_oem_seek_service(manager->oem_ops, &service);
if (ret < 0) {
goto failed;
}
- memset(&prov_params, 0, sizeof(wfd_oem_asp_prov_s));
-
g_variant_get(parameters, "(a{sv})", &iter);
+ if (!iter) {
+ ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
+ goto failed;
+ }
+
+ memset(&prov_params, 0, sizeof(wfd_oem_asp_prov_s));
__get_asp_connect_params(iter, &prov_params);
if (ISZEROMACADDR(prov_params.service_mac) ||
goto failed;
}
- memset(&prov_params, 0, sizeof(wfd_oem_asp_prov_s));
-
g_variant_get(parameters, "(a{sv})", &iter);
+ if (!iter) {
+ ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
+ goto failed;
+ }
+
+ memset(&prov_params, 0, sizeof(wfd_oem_asp_prov_s));
__get_asp_confirm_params(iter, &prov_params, &confirmed);
if (ISZEROMACADDR(prov_params.session_mac)) {