diff options
Diffstat (limited to 'core/opal-msg.c')
-rw-r--r-- | core/opal-msg.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/opal-msg.c b/core/opal-msg.c index 4a7cddb1..19714670 100644 --- a/core/opal-msg.c +++ b/core/opal-msg.c @@ -81,6 +81,9 @@ static int64_t opal_get_msg(uint64_t *buffer, uint64_t size) if (size < sizeof(struct opal_msg) || !buffer) return OPAL_PARAMETER; + if (!opal_addr_valid(buffer)) + return OPAL_PARAMETER; + lock(&opal_msg_lock); entry = list_pop(&msg_pending_list, struct opal_msg_entry, link); @@ -114,6 +117,9 @@ static int64_t opal_check_completion(uint64_t *buffer, uint64_t size, int rc = OPAL_BUSY; void *data = NULL; + if (!opal_addr_valid(buffer)) + return OPAL_PARAMETER; + lock(&opal_msg_lock); list_for_each_safe(&msg_pending_list, entry, next_entry, link) { if (entry->msg.msg_type == OPAL_MSG_ASYNC_COMP && |