layout: If no valid output found, abort early with a protocol violation 32/25232/1
authorMarius Vlad <marius.vlad@collabora.com>
Wed, 9 Sep 2020 15:00:22 +0000 (18:00 +0300)
committerMarius Vlad <marius.vlad@collabora.com>
Thu, 10 Sep 2020 16:31:06 +0000 (19:31 +0300)
Spotted by code inspection, but haven't seen in the wild.

Bug-AGL: SPEC-3544

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie1f0191e7c987c1688c820e1cabbc581b3679232

src/layout.c

index fa49163..b7f9d4a 100644 (file)
@@ -316,6 +316,15 @@ ivi_layout_desktop_committed(struct ivi_surface *surf)
                if (!r_output)
                        r_output = ivi_layout_find_bg_output(surf->ivi);
 
+               /* if we couldn't still find an output by this point, there's
+                * something wrong so we abort with a protocol error */
+               if (!r_output) {
+                       wl_resource_post_error(surf->ivi->shell_client.resource,
+                                              AGL_SHELL_ERROR_INVALID_ARGUMENT,
+                                              "No valid output found to activate surface by default");
+                       return;
+               }
+
                /* use the output of the bg to activate the app on start-up by
                 * default */
                if (surf->view && r_output) {