pipe-loader: check that the pointer to driconf_xml isn't NULL
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 20 Nov 2019 08:14:17 +0000 (09:14 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 21 Nov 2019 06:34:20 +0000 (07:34 +0100)
This happens when mesa is built with only swrast. The default
driver being kmsro and the default driconf file being v3d,
it's NULL and then strdup crashes.

This fixes a crash with piglit spec/egl_mesa_query_driver/conformance.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c

index 2e1bff4c233caf8b2efa658917c3354bb0b98483..7d90285a484df192490e22647b8c1030aae18c49 100644 (file)
@@ -331,7 +331,7 @@ pipe_loader_drm_get_driinfo_xml(const char *driver_name)
    const struct drm_driver_descriptor *dd =
       get_driver_descriptor(driver_name, &lib);
 
-   if (dd && dd->driconf_xml)
+   if (dd && dd->driconf_xml && *dd->driconf_xml)
       xml = strdup(*dd->driconf_xml);
 
    if (lib)