summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2021-07-29 11:48:57 +0300
committerMarius Vlad <marius.vlad@collabora.com>2021-07-29 11:48:57 +0300
commit36574a78bc7baaf3dd254ed91641fd993fc90c14 (patch)
tree93205292f79d6dc0a5ce34c1c4e79a1e0dd5a390
parent66d1ba22264303e705bbe126578c0c99cdb80dba (diff)
Bug-AGL: SPEC-4037 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I6a9b7fd74d81cb117afcb12639862288769b7fde
-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)));