From 3c678e57d757305e4d9e5d6eb5ac6d3c6e855145 Mon Sep 17 00:00:00 2001 From: Michal Mielewczyk Date: Mon, 30 Nov 2020 09:02:49 -0500 Subject: [PATCH] classifier: fix string comparison Signed-off-by: Michal Mielewczyk --- modules/cas_cache/classifier.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/cas_cache/classifier.c b/modules/cas_cache/classifier.c index dbd3a83..6d86ebc 100644 --- a/modules/cas_cache/classifier.c +++ b/modules/cas_cache/classifier.c @@ -533,8 +533,10 @@ static cas_cls_eval_t _cas_cls_extension_test( return cas_cls_eval_no; /* First character of @extension is '.', which we don't want to compare */ - len = strnlen(extension + 1, dentry->d_name.len); - len = min(ctx->len, len); + len = dentry->d_name.len - (extension - (char*)dentry->d_name.name) - 1; + if (len != ctx->len) + return cas_cls_eval_no; + if (strncmp(ctx->string, extension + 1, len) == 0) return cas_cls_eval_yes; @@ -615,7 +617,9 @@ static cas_cls_eval_t _cas_cls_process_name_test( get_task_comm(comm, ti); len = strnlen(comm, TASK_COMM_LEN); - len = min(ctx->len, len); + if (len != ctx->len) + return cas_cls_eval_no; + if (strncmp(ctx->string, comm, len) == 0) return cas_cls_eval_yes;