diff --git a/fs/hmdfs/comm/message_verify.c b/fs/hmdfs/comm/message_verify.c index ad6109cf701d2c0cc641a4684fbc880e06d04228..4c593390778c07917e9793e3f0d786efa2041566 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->list)) + return -EINVAL; + if (msg_len < sizeof(*resp)) return -EINVAL;