[xf86-video-cirrus,2/3] Check for a successful transmission of EDID for Laguna I2C bus code

Submitted by Kevin Brace on April 17, 2019, 11:45 p.m.

Details

Message ID 20190417234521.13388-3-kevinbrace@gmx.com
State Accepted
Commit 22c611d52fc33058c03ad44c43ce3bd687849315
Headers show
Series "Laguna I2C bus fix and activation" ( rev: 1 ) in X.org

Not browsing as part of any series.

Commit Message

Kevin Brace April 17, 2019, 11:45 p.m.
The existing code can potentially cause a null pointer crash if EDID
was not obtained successfully.

Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
---
 src/lg_driver.c | 6 ++++++
 1 file changed, 6 insertions(+)

--
2.17.1

Patch hide | download patch | download mbox

diff --git a/src/lg_driver.c b/src/lg_driver.c
index be8963a..1042030 100644
--- a/src/lg_driver.c
+++ b/src/lg_driver.c
@@ -360,6 +360,12 @@  LgDoDDC(ScrnInfoPtr pScrn)
      * Read and output monitor info using DDC2 over I2C bus.
      */
     MonInfo = xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn), pCir->I2CPtr1);
+    if (!MonInfo) {
+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                    "Failed to obtain EDID.\n");
+        goto unmap_out;
+    }
+
     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                 "I2C Monitor info: %p\n", (void *)MonInfo);
     xf86PrintEDID(MonInfo);