diff mbox series

blktests: src/miniublk.c: fix segment fault when io_uring is disabled

Message ID 20241213073645.2347787-1-ming.lei@redhat.com (mailing list archive)
State New, archived
Headers show
Series blktests: src/miniublk.c: fix segment fault when io_uring is disabled | expand

Commit Message

Ming Lei Dec. 13, 2024, 7:36 a.m. UTC
When io_uring is disabled, ublk_ctrl_init() will return NULL, so we
have to check the result.

Fixes segment fault reported from Yi.

Reported-by: Zhang Yi <yi.zhang@redhat.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
 src/miniublk.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

Comments

Shinichiro Kawasaki Dec. 18, 2024, 10:17 a.m. UTC | #1
On Dec 13, 2024 / 15:36, Ming Lei wrote:
> When io_uring is disabled, ublk_ctrl_init() will return NULL, so we
> have to check the result.
> 
> Fixes segment fault reported from Yi.

Ming, let me confirm, the segmentation fault was reported in the blktests GitHub
PR 153 [1]. AFAIU, the segmentation fault cause is in liburing, not in blktests
src/miniublk.c. So I guess that this patch is not needed. Do you have same view?

[1] https://github.com/osandov/blktests/pull/153
Ming Lei Dec. 18, 2024, 10:38 a.m. UTC | #2
On Wed, Dec 18, 2024 at 6:17 PM Shinichiro Kawasaki
<shinichiro.kawasaki@wdc.com> wrote:
>
> On Dec 13, 2024 / 15:36, Ming Lei wrote:
> > When io_uring is disabled, ublk_ctrl_init() will return NULL, so we
> > have to check the result.
> >
> > Fixes segment fault reported from Yi.
>
> Ming, let me confirm, the segmentation fault was reported in the blktests GitHub
> PR 153 [1]. AFAIU, the segmentation fault cause is in liburing, not in blktests
> src/miniublk.c. So I guess that this patch is not needed. Do you have same view?

Hi Shinichiro,

This patch fixes another segment fault which is miniublk specific.

Thanks,
Shinichiro Kawasaki Dec. 18, 2024, 12:16 p.m. UTC | #3
On Dec 18, 2024 / 18:38, Ming Lei wrote:
> On Wed, Dec 18, 2024 at 6:17 PM Shinichiro Kawasaki
> <shinichiro.kawasaki@wdc.com> wrote:
> >
> > On Dec 13, 2024 / 15:36, Ming Lei wrote:
> > > When io_uring is disabled, ublk_ctrl_init() will return NULL, so we
> > > have to check the result.
> > >
> > > Fixes segment fault reported from Yi.
> >
> > Ming, let me confirm, the segmentation fault was reported in the blktests GitHub
> > PR 153 [1]. AFAIU, the segmentation fault cause is in liburing, not in blktests
> > src/miniublk.c. So I guess that this patch is not needed. Do you have same view?
> 
> Hi Shinichiro,
> 
> This patch fixes another segment fault which is miniublk specific.

Got it, I have applied this patch. Thanks!
diff mbox series

Patch

diff --git a/src/miniublk.c b/src/miniublk.c
index 73791fd..f98f850 100644
--- a/src/miniublk.c
+++ b/src/miniublk.c
@@ -1136,9 +1136,14 @@  static int ublk_stop_io_daemon(const struct ublk_dev *dev)
 static int __cmd_dev_del(int number, bool log)
 {
 	struct ublk_dev *dev;
-	int ret;
+	int ret = -ENODEV;
 
 	dev = ublk_ctrl_init();
+	if (!dev) {
+		ublk_err("del dev %d failed\n", number);
+		goto fail;
+	}
+
 	dev->dev_info.dev_id = number;
 
 	ret = ublk_ctrl_get_info(dev);
@@ -1208,8 +1213,14 @@  static int cmd_dev_del(int argc, char *argv[])
 
 static int __cmd_dev_list(int number, bool log)
 {
-	struct ublk_dev *dev = ublk_ctrl_init();
-	int ret;
+	struct ublk_dev *dev;
+	int ret = -ENODEV;
+
+	dev = ublk_ctrl_init();
+	if (!dev) {
+		ublk_err("list dev %d failed\n", number);
+		goto exit;
+	}
 
 	dev->dev_info.dev_id = number;
 
@@ -1223,7 +1234,7 @@  static int __cmd_dev_list(int number, bool log)
 	}
 
 	ublk_ctrl_deinit(dev);
-
+exit:
 	return ret;
 }