Check for a useable connector and also if the resolution is sane
(width and height are both non-zero).

Signed-off-by: Tobias Jakobi <tjakobi at math.uni-bielefeld.de>
---
 tests/exynos/exynos_fimg2d_test.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/tests/exynos/exynos_fimg2d_test.c 
b/tests/exynos/exynos_fimg2d_test.c
index cb021ac..d68f3d1 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -725,10 +725,22 @@ int main(int argc, char **argv)
        connector_find_mode(dev->fd, &con, resources);
        drmModeFreeResources(resources);

+       if (!con.mode) {
+               fprintf(stderr, "failed to find usable connector\n");
+               ret = -EFAULT;
+               goto err_drm_close;
+       }
+
        screen_width = con.mode->hdisplay;
        screen_height = con.mode->vdisplay;

-       printf("screen width  = %d, screen height = %d\n", screen_width,
+       if (screen_width == 0 || screen_height == 0) {
+               fprintf(stderr, "failed to find sane resolution on 
connector\n");
+               ret = -EFAULT;
+               goto err_drm_close;
+       }
+
+       printf("screen width = %d, screen height = %d\n", screen_width,
                        screen_height);

        bo = exynos_create_buffer(dev, screen_width * screen_height * 4, 0);
-- 
2.0.5

Reply via email to