drm/radeon: fix a possible null pointer dereference
authorjsg <jsg@openbsd.org>
Wed, 15 Jun 2022 07:37:40 +0000 (07:37 +0000)
committerjsg <jsg@openbsd.org>
Wed, 15 Jun 2022 07:37:40 +0000 (07:37 +0000)
From Gong Yuanjun
7b7fba107b2c4ec7673d0f45bdbb9d1af697d9b9 in linux 5.15.y/5.15.47
a2b28708b645c5632dc93669ab06e97874c8244f in mainline linux

sys/dev/pci/drm/radeon/radeon_connectors.c

index 1546abc..d157bb9 100644 (file)
@@ -473,6 +473,8 @@ static struct drm_display_mode *radeon_fp_native_mode(struct drm_encoder *encode
            native_mode->vdisplay != 0 &&
            native_mode->clock != 0) {
                mode = drm_mode_duplicate(dev, native_mode);
+               if (!mode)
+                       return NULL;
                mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
                drm_mode_set_name(mode);
 
@@ -487,6 +489,8 @@ static struct drm_display_mode *radeon_fp_native_mode(struct drm_encoder *encode
                 * simpler.
                 */
                mode = drm_cvt_mode(dev, native_mode->hdisplay, native_mode->vdisplay, 60, true, false, false);
+               if (!mode)
+                       return NULL;
                mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
                DRM_DEBUG_KMS("Adding cvt approximation of native panel mode %s\n", mode->name);
        }