From d8f78afc8af515e5668a1396a0e51490db590d2c Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 26 Apr 2023 17:17:19 -0400 Subject: [PATCH] xsi_message_queue: Permit incoming buffer to be NULL. The user address space has not included NULL for a while, so this has actually been broken for years, and nobody noticed. I guess XSI message queues are not very well used? Fixes the in-tree "xsi_msg_queue_test1". --- src/system/kernel/posix/xsi_message_queue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/system/kernel/posix/xsi_message_queue.cpp b/src/system/kernel/posix/xsi_message_queue.cpp index 2920aef789..694dee0207 100644 --- a/src/system/kernel/posix/xsi_message_queue.cpp +++ b/src/system/kernel/posix/xsi_message_queue.cpp @@ -494,7 +494,7 @@ _user_xsi_msgctl(int messageQueueID, int command, struct msqid_ds *buffer) TRACE_ERROR(("xsi_msgctl: message queue id %d not valid\n", messageQueueID)); return EINVAL; } - if (!IS_USER_ADDRESS(buffer)) { + if (buffer != NULL && !IS_USER_ADDRESS(buffer)) { TRACE_ERROR(("xsi_msgctl: buffer address is not valid\n")); return B_BAD_ADDRESS; }