summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/homescreen.cpp20
-rw-r--r--src/hs-proxy.cpp2
2 files changed, 15 insertions, 7 deletions
diff --git a/src/homescreen.cpp b/src/homescreen.cpp
index 8470635..49850be 100644
--- a/src/homescreen.cpp
+++ b/src/homescreen.cpp
@@ -162,9 +162,13 @@ static void tap_shortcut (afb_req_t request)
ret = g_hs_instance->client_manager->handleRequest(request, __FUNCTION__, value);
if(ret == AFB_REQ_NOT_STARTED_APPLICATION) {
std::string id = g_hs_instance->app_info->getAppProperty(value, _keyId);
- HS_AfmMainProxy afm_proxy;
- afm_proxy.start(g_hs_instance, request, id);
- ret = 0;
+ if (!id.empty()) {
+ HS_AfmMainProxy afm_proxy;
+ afm_proxy.start(g_hs_instance, request, id);
+ ret = 0;
+ } else {
+ ret = AFB_EVENT_BAD_REQUEST;
+ }
}
}
else {
@@ -314,9 +318,13 @@ static void showWindow(afb_req_t request)
ret = g_hs_instance->client_manager->handleRequest(request, __FUNCTION__, value);
if(ret == AFB_REQ_NOT_STARTED_APPLICATION) {
std::string id = g_hs_instance->app_info->getAppProperty(value, _keyId);
- HS_AfmMainProxy afm_proxy;
- afm_proxy.start(g_hs_instance, request, id);
- ret = 0;
+ if (!id.empty()) {
+ HS_AfmMainProxy afm_proxy;
+ afm_proxy.start(g_hs_instance, request, id);
+ ret = 0;
+ } else {
+ ret = AFB_EVENT_BAD_REQUEST;
+ }
}
}
else {
diff --git a/src/hs-proxy.cpp b/src/hs-proxy.cpp
index cdbf249..ea8976c 100644
--- a/src/hs-proxy.cpp
+++ b/src/hs-proxy.cpp
@@ -185,7 +185,7 @@ void HS_AfmMainProxy::start(struct hs_instance *instance, afb_req_t request, con
* and client context there. We pass the closure_data with the client context
* and the application id to remove it.
*/
- if (!instance)
+ if (!instance || id.empty())
return;
cdata = static_cast<struct closure_data *>(calloc(1, sizeof(*cdata)));