72 lines
2.3 KiB
Diff
72 lines
2.3 KiB
Diff
From 363b0761d007fa20e165f385a085a2fcf6fc11a0 Mon Sep 17 00:00:00 2001
|
|
From: jinlun <jinlun@huawei.com>
|
|
Date: Tue, 18 Jun 2024 09:45:47 +0800
|
|
Subject: [PATCH 13/14] add parameter check
|
|
|
|
---
|
|
src/common/dim_measure_log.c | 3 +++
|
|
src/core/tasks/dim_core_measure_kernel.c | 6 +++---
|
|
src/core/tasks/dim_core_measure_module.c | 6 ++++--
|
|
3 files changed, 10 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/src/common/dim_measure_log.c b/src/common/dim_measure_log.c
|
|
index 4b3bd34..59654a5 100644
|
|
--- a/src/common/dim_measure_log.c
|
|
+++ b/src/common/dim_measure_log.c
|
|
@@ -33,6 +33,9 @@ static int cal_measure_log_digest(const char *name,
|
|
int digest_size = dim_digest_size(info->digest.algo);
|
|
SHASH_DESC_ON_STACK(shash, hash->tfm);
|
|
|
|
+ if (algo_name == NULL)
|
|
+ return -EINVAL;
|
|
+
|
|
shash->tfm = hash->tfm;
|
|
ret = crypto_shash_init(shash);
|
|
if (ret < 0)
|
|
diff --git a/src/core/tasks/dim_core_measure_kernel.c b/src/core/tasks/dim_core_measure_kernel.c
|
|
index fa04ae4..bb7fd74 100644
|
|
--- a/src/core/tasks/dim_core_measure_kernel.c
|
|
+++ b/src/core/tasks/dim_core_measure_kernel.c
|
|
@@ -139,13 +139,13 @@ static int kernel_text_measure(int mode, struct dim_measure *m)
|
|
{
|
|
int ret = 0;
|
|
const char *kr = init_uts_ns.name.release;
|
|
- struct dim_digest digest = {
|
|
- .algo = m->hash.algo,
|
|
- };
|
|
+ struct dim_digest digest = {0};
|
|
|
|
if (m == NULL)
|
|
return -EINVAL;
|
|
|
|
+ digest.algo = m->hash.algo;
|
|
+
|
|
if (!dim_core_policy_match(DIM_POLICY_OBJ_KERNEL_TEXT,
|
|
DIM_POLICY_KEY_NAME, kr))
|
|
return 0;
|
|
diff --git a/src/core/tasks/dim_core_measure_module.c b/src/core/tasks/dim_core_measure_module.c
|
|
index feb6624..613e0e5 100644
|
|
--- a/src/core/tasks/dim_core_measure_module.c
|
|
+++ b/src/core/tasks/dim_core_measure_module.c
|
|
@@ -64,13 +64,15 @@ static int measure_module(struct dim_policy *policy, void *data)
|
|
{
|
|
int ret = 0;
|
|
struct module_text_measure_ctx *ctx = data;
|
|
- const char *mod_name = policy->name;
|
|
+ const char *mod_name = NULL;
|
|
struct dim_digest digest = { 0 };
|
|
|
|
if (policy == NULL || policy->obj != DIM_POLICY_OBJ_MODULE_TEXT ||
|
|
- mod_name == NULL)
|
|
+ policy->name == NULL)
|
|
return 0;
|
|
|
|
+ mod_name = policy->name;
|
|
+
|
|
/* if module is not inserted in baseline_init stage, ignore it */
|
|
if (ctx->mode == DIM_MEASURE &&
|
|
dim_measure_dynamic_baseline_search(ctx->m, mod_name,
|
|
--
|
|
2.33.0
|
|
|