79c4324644
Change-Id: I2d302dda68298877c65c99147f5bf22186a59aac
45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
From c670a3038a0b7dffda79672a63c84609459218c6 Mon Sep 17 00:00:00 2001
|
|
From: qihao <qihao_yewu@cmss.chinamobile.com>
|
|
Date: Tue, 12 Sep 2023 10:22:09 +0800
|
|
Subject: [PATCH] aio-posix: zero out io_uring sqe user_data
|
|
|
|
cheery-pick from 87ec6f55af38e29be5b2b65a8acf84da73e06d06
|
|
|
|
liburing does not clear sqe->user_data. We must do it ourselves to avoid
|
|
undefined behavior in process_cqe() when user_data is used.
|
|
|
|
Note that fdmon-io_uring is currently disabled, so this is a latent bug
|
|
that does not affect users. Let's merge this fix now to make it easier
|
|
to enable fdmon-io_uring in the future (and I'm working on that).
|
|
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Message-ID: <20230426212639.82310-1-stefanha@redhat.com>
|
|
Signed-off-by: qihao_yewu <qihao_yewu@cmss.chinamobile.com>
|
|
---
|
|
util/fdmon-io_uring.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/util/fdmon-io_uring.c b/util/fdmon-io_uring.c
|
|
index ab43052dd7..35165bcb46 100644
|
|
--- a/util/fdmon-io_uring.c
|
|
+++ b/util/fdmon-io_uring.c
|
|
@@ -184,6 +184,7 @@ static void add_poll_remove_sqe(AioContext *ctx, AioHandler *node)
|
|
#else
|
|
io_uring_prep_poll_remove(sqe, node);
|
|
#endif
|
|
+ io_uring_sqe_set_data(sqe, NULL);
|
|
}
|
|
|
|
/* Add a timeout that self-cancels when another cqe becomes ready */
|
|
@@ -197,6 +198,7 @@ static void add_timeout_sqe(AioContext *ctx, int64_t ns)
|
|
|
|
sqe = get_sqe(ctx);
|
|
io_uring_prep_timeout(sqe, &ts, 1, 0);
|
|
+ io_uring_sqe_set_data(sqe, NULL);
|
|
}
|
|
|
|
/* Add sqes from ctx->submit_list for submission */
|
|
--
|
|
2.41.0.windows.1
|
|
|