[PATCH] imx serial driver: NULL pointer dereference in serial_imx_probe/remove

Bas Vermeulen Bas.Vermeulen at novero.com
Thu Feb 11 13:02:02 EST 2010


Check for NULL pointer before dereferencing, as it is possible and legal 
to pass in NULL for the platform data for a serial port.

Signed-off-by: Bas Vermeulen <bas.vermeulen at novero.com>

diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c
index 60d665a..d00fcf8 100644
--- a/drivers/serial/imx.c
+++ b/drivers/serial/imx.c
@@ -1279,7 +1279,7 @@ static int serial_imx_probe(struct platform_device 
*pdev)
          sport->use_irda = 1;
  #endif

-    if (pdata->init) {
+    if (pdata && pdata->init) {
          ret = pdata->init(pdev);
          if (ret)
              goto clkput;
@@ -1292,7 +1292,7 @@ static int serial_imx_probe(struct platform_device 
*pdev)

      return 0;
  deinit:
-    if (pdata->exit)
+    if (pdata && pdata->exit)
          pdata->exit(pdev);
  clkput:
      clk_put(sport->clk);
@@ -1321,7 +1321,7 @@ static int serial_imx_remove(struct 
platform_device *pdev)

      clk_disable(sport->clk);

-    if (pdata->exit)
+    if (pdata && pdata->exit)
          pdata->exit(pdev);

      iounmap(sport->port.membase);

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: drivers-imx-serial-null-dereference.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100211/5064c9a5/attachment.el>


More information about the linux-arm-kernel mailing list