From 99dbcfdae7e4e328fcf2619bb880d5fd36f5ad2f Mon Sep 17 00:00:00 2001 From: linqiheng Date: Wed, 11 Jan 2023 14:38:15 +0000 Subject: [PATCH] hmdfs: fix the message version check Only the head version of 2.0 is supported, and the corresponding message length must be checked. Signed-off-by: linqiheng Change-Id: I2f55f9ef7822c701f4ca2ccee61e8ff2088c1bb1 --- fs/hmdfs/comm/message_verify.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/fs/hmdfs/comm/message_verify.c b/fs/hmdfs/comm/message_verify.c index c9eb94d8b615..fd76658ef16d 100644 --- a/fs/hmdfs/comm/message_verify.c +++ b/fs/hmdfs/comm/message_verify.c @@ -934,7 +934,9 @@ int hmdfs_message_verify(struct hmdfs_peer *con, struct hmdfs_head_cmd *head, goto handle_bad_msg; } - if (head->version == DFS_2_0) { + if (head->version != DFS_2_0) { + err = -EINVAL; + } else { len = le32_to_cpu(head->data_len) - sizeof(struct hmdfs_head_cmd); min = message_length[flag][cmd][HMDFS_MESSAGE_MIN_INDEX]; @@ -973,13 +975,6 @@ int hmdfs_message_verify(struct hmdfs_peer *con, struct hmdfs_head_cmd *head, } handle_bad_msg: - if (err) { - handle_bad_message(con, head, &err); - return err; - } - - if (head->version == DFS_1_0) - return err; // now, DFS_1_0 version do not verify - - return -EINVAL; + handle_bad_message(con, head, &err); + return err; } -- Gitee