soc: qcom: hab: add the buffer size sanity check for exporting a buffer

hab only supports multiple page size memory export, so the exported buffer
size must be N * PAGE_SIZE w/ N > 0.

Change-Id: I0b59639b3ca8842ccd49deb6b32f29f68da0b7a4
Signed-off-by: Yao Jiang <yaojia@codeaurora.org>
Signed-off-by: Yong Ding <yongding@codeaurora.org>
This commit is contained in:
Yong Ding 2021-03-19 13:58:24 +08:00
parent 08db65b8bf
commit 44ab3c2172

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
*/
#include "hab.h"
#include "hab_grantable.h"
@ -241,7 +241,8 @@ int hab_mem_export(struct uhab_context *ctx,
int page_count;
int compressed = 0;
if (!ctx || !param || !param->buffer)
if (!ctx || !param || !param->buffer || !param->sizebytes
|| ((param->sizebytes % PAGE_SIZE) != 0))
return -EINVAL;
vchan = hab_get_vchan_fromvcid(param->vcid, ctx, 0);