homescreen/hs-proxy: Guard against empty appids 80/26580/1 lamprey 12.0.1 12.1.0 12.1.1 12.1.10 12.1.11 12.1.12 12.1.13 12.1.14 12.1.15 12.1.16 12.1.17 12.1.18 12.1.19 12.1.2 12.1.20 12.1.3 12.1.4 12.1.5 12.1.6 12.1.7 12.1.8 12.1.9 lamprey/12.0.1 lamprey/12.1.0 lamprey/12.1.1 lamprey/12.1.10 lamprey/12.1.11 lamprey/12.1.12 lamprey/12.1.13 lamprey/12.1.14 lamprey/12.1.15 lamprey/12.1.16 lamprey/12.1.17 lamprey/12.1.18 lamprey/12.1.19 lamprey/12.1.2 lamprey/12.1.20 lamprey/12.1.3 lamprey/12.1.4 lamprey/12.1.5 lamprey/12.1.6 lamprey/12.1.7 lamprey/12.1.8 lamprey/12.1.9 lamprey_12.0.1 lamprey_12.1.0 lamprey_12.1.1 lamprey_12.1.10 lamprey_12.1.11 lamprey_12.1.12 lamprey_12.1.13 lamprey_12.1.14 lamprey_12.1.15 lamprey_12.1.16 lamprey_12.1.17 lamprey_12.1.18 lamprey_12.1.19 lamprey_12.1.2 lamprey_12.1.20 lamprey_12.1.3 lamprey_12.1.4 lamprey_12.1.5 lamprey_12.1.6 lamprey_12.1.7 lamprey_12.1.8 lamprey_12.1.9
authorMarius Vlad <marius.vlad@collabora.com>
Thu, 29 Jul 2021 08:48:57 +0000 (11:48 +0300)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 20 Aug 2021 13:12:29 +0000 (13:12 +0000)
Bug-AGL: SPEC-4037

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I6a9b7fd74d81cb117afcb12639862288769b7fde
(cherry picked from commit 36574a78bc7baaf3dd254ed91641fd993fc90c14)

src/homescreen.cpp
src/hs-proxy.cpp

index 8470635..49850be 100644 (file)
@@ -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 {
index cdbf249..ea8976c 100644 (file)
@@ -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)));