dlm: replace one-element array with fixed size array
authorPaulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com>
Tue, 11 Oct 2022 20:23:14 +0000 (09:23 +1300)
committerDavid Teigland <teigland@redhat.com>
Tue, 8 Nov 2022 18:58:47 +0000 (12:58 -0600)
One-element arrays are deprecated. So, replace one-element array with
fixed size array member in struct dlm_ls, and refactor the rest of the
code, accordingly.

Link: https://github.com/KSPP/linux/issues/79
Link: https://github.com/KSPP/linux/issues/228
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101836
Link: https://lore.kernel.org/lkml/Y0W5jkiXUkpNl4ap@mail.google.com/
Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/dlm_internal.h
fs/dlm/lockspace.c

index e34c3d2..94fadb6 100644 (file)
@@ -670,7 +670,7 @@ struct dlm_ls {
        void                    *ls_ops_arg;
 
        int                     ls_namelen;
-       char                    ls_name[1];
+       char                    ls_name[DLM_LOCKSPACE_LEN + 1];
 };
 
 /*
index bae050d..9479c81 100644 (file)
@@ -473,7 +473,7 @@ static int new_lockspace(const char *name, const char *cluster,
 
        error = -ENOMEM;
 
-       ls = kzalloc(sizeof(struct dlm_ls) + namelen, GFP_NOFS);
+       ls = kzalloc(sizeof(*ls), GFP_NOFS);
        if (!ls)
                goto out;
        memcpy(ls->ls_name, name, namelen);