| From c15022f4f12be4e6b444a853cc533ba9b726eab0 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 4 Aug 2023 09:26:57 +0800 |
| Subject: fs: lockd: avoid possible wrong NULL parameter |
| |
| From: Su Hui <suhui@nfschina.com> |
| |
| [ Upstream commit de8d38cf44bac43e83bad28357ba84784c412752 ] |
| |
| clang's static analysis warning: fs/lockd/mon.c: line 293, column 2: |
| Null pointer passed as 2nd argument to memory copy function. |
| |
| Assuming 'hostname' is NULL and calling 'nsm_create_handle()', this will |
| pass NULL as 2nd argument to memory copy function 'memcpy()'. So return |
| NULL if 'hostname' is invalid. |
| |
| Fixes: 77a3ef33e2de ("NSM: More clean up of nsm_get_handle()") |
| Signed-off-by: Su Hui <suhui@nfschina.com> |
| Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> |
| Reviewed-by: Jeff Layton <jlayton@kernel.org> |
| Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/lockd/mon.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c |
| index 1d9488cf05348..87a0f207df0b9 100644 |
| --- a/fs/lockd/mon.c |
| +++ b/fs/lockd/mon.c |
| @@ -276,6 +276,9 @@ static struct nsm_handle *nsm_create_handle(const struct sockaddr *sap, |
| { |
| struct nsm_handle *new; |
| |
| + if (!hostname) |
| + return NULL; |
| + |
| new = kzalloc(sizeof(*new) + hostname_len + 1, GFP_KERNEL); |
| if (unlikely(new == NULL)) |
| return NULL; |
| -- |
| 2.40.1 |
| |