diff mbox series

ksmbd: fix error code in ndr_read_int32()

Message ID 20211130125047.GA24578@kili (mailing list archive)
State New, archived
Headers show
Series ksmbd: fix error code in ndr_read_int32() | expand

Commit Message

Dan Carpenter Nov. 30, 2021, 12:50 p.m. UTC
This is a failure path and it should return -EINVAL instead of success.
Otherwise it could result in the caller using uninitialized memory.

Fixes: 303fff2b8c77 ("ksmbd: add validation for ndr read/write functions")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 fs/ksmbd/ndr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Namjae Jeon Dec. 1, 2021, 12:32 a.m. UTC | #1
2021-11-30 21:50 GMT+09:00, Dan Carpenter <dan.carpenter@oracle.com>:
> This is a failure path and it should return -EINVAL instead of success.
> Otherwise it could result in the caller using uninitialized memory.
>
> Fixes: 303fff2b8c77 ("ksmbd: add validation for ndr read/write functions")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>

Thanks!
diff mbox series

Patch

diff --git a/fs/ksmbd/ndr.c b/fs/ksmbd/ndr.c
index 8317f7ca402b..5052be9261d9 100644
--- a/fs/ksmbd/ndr.c
+++ b/fs/ksmbd/ndr.c
@@ -148,7 +148,7 @@  static int ndr_read_int16(struct ndr *n, __u16 *value)
 static int ndr_read_int32(struct ndr *n, __u32 *value)
 {
 	if (n->offset + sizeof(__u32) > n->length)
-		return 0;
+		return -EINVAL;
 
 	if (value)
 		*value = le32_to_cpu(*(__le32 *)ndr_get_field(n));