瀏覽代碼

xen-blkfront: check for null drvdata in blkback_changed (XenbusStateClosing)

xen-blkfront will crash if the check to talk_to_blkback()
in blkback_changed()(XenbusStateInitWait) returns an error.
The driver data is freed and info is set to NULL. Later during
the close process via talk_to_blkback's call to xenbus_dev_fatal()
the null pointer is passed to and dereference in blkfront_closing.

CC: stable@vger.kernel.org
Signed-off-by: Cathy Avery <cathy.avery@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cathy Avery 10 年之前
父節點
當前提交
a54c8f0f2d
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/block/xen-blkfront.c

+ 2 - 1
drivers/block/xen-blkfront.c

@@ -1968,7 +1968,8 @@ static void blkback_changed(struct xenbus_device *dev,
 			break;
 		/* Missed the backend's Closing state -- fallthrough */
 	case XenbusStateClosing:
-		blkfront_closing(info);
+		if (info)
+			blkfront_closing(info);
 		break;
 	}
 }