diff --git a/fs/hmdfs/comm/message_verify.c b/fs/hmdfs/comm/message_verify.c index ad6109cf701d2c0cc641a4684fbc880e06d04228..fcec89380b78de736528f9acd858658914af51bf 100644 --- a/fs/hmdfs/comm/message_verify.c +++ b/fs/hmdfs/comm/message_verify.c @@ -655,6 +655,9 @@ static int verify_getxattr_resp(size_t msg_len, void *msg) { struct getxattr_response *resp = msg; + if (resp->size != sizeof(*resp->value)) + return -EINVAL; + if (msg_len < sizeof(*resp)) return -EINVAL; @@ -733,6 +736,9 @@ static int verify_listxattr_resp(size_t msg_len, void *msg) { struct listxattr_response *resp = msg; + if (resp->size != sizeof(*resp->value)) + return -EINVAL; + if (msg_len < sizeof(*resp)) return -EINVAL;