Message ID | 20230127224101.never.746-kees@kernel.org (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | scripts/dtc: Replace 0-length arrays with flexible arrays | expand |
On Fri, Jan 27, 2023 at 4:41 PM Kees Cook <keescook@chromium.org> wrote: > > Replace the 0-length array with a C99 flexible array. Seen with GCC 13 > under -fstrict-flex-arrays: > > In file included from ../lib/fdt_ro.c:2: > ../lib/../scripts/dtc/libfdt/fdt_ro.c: In function 'fdt_get_name': > ../lib/../scripts/dtc/libfdt/fdt_ro.c:319:24: warning: 'strrchr' reading 1 or more bytes from a region of size 0 [-Wstringop-overread] > 319 | leaf = strrchr(nameptr, '/'); > | ^~~~~~~~~~~~~~~~~~~~~ > > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Frank Rowand <frowand.list@gmail.com> > Cc: devicetree@vger.kernel.org > Signed-off-by: Kees Cook <keescook@chromium.org> > --- > scripts/dtc/libfdt/fdt.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Changes to dtc/libfdt go to upstream dtc first and then we sync them back. Rob
On Fri, Jan 27, 2023 at 05:44:13PM -0600, Rob Herring wrote: > On Fri, Jan 27, 2023 at 4:41 PM Kees Cook <keescook@chromium.org> wrote: > > > > Replace the 0-length array with a C99 flexible array. Seen with GCC 13 > > under -fstrict-flex-arrays: > > > > In file included from ../lib/fdt_ro.c:2: > > ../lib/../scripts/dtc/libfdt/fdt_ro.c: In function 'fdt_get_name': > > ../lib/../scripts/dtc/libfdt/fdt_ro.c:319:24: warning: 'strrchr' reading 1 or more bytes from a region of size 0 [-Wstringop-overread] > > 319 | leaf = strrchr(nameptr, '/'); > > | ^~~~~~~~~~~~~~~~~~~~~ > > > > Cc: Rob Herring <robh+dt@kernel.org> > > Cc: Frank Rowand <frowand.list@gmail.com> > > Cc: devicetree@vger.kernel.org > > Signed-off-by: Kees Cook <keescook@chromium.org> > > --- > > scripts/dtc/libfdt/fdt.h | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > Changes to dtc/libfdt go to upstream dtc first and then we sync them back. Ah-ha, I've found it: https://github.com/dgibson/dtc Thanks!
On Fri, Jan 27, 2023 at 04:12:21PM -0800, Kees Cook wrote: > On Fri, Jan 27, 2023 at 05:44:13PM -0600, Rob Herring wrote: > > On Fri, Jan 27, 2023 at 4:41 PM Kees Cook <keescook@chromium.org> wrote: > > > > > > Replace the 0-length array with a C99 flexible array. Seen with GCC 13 > > > under -fstrict-flex-arrays: > > > > > > In file included from ../lib/fdt_ro.c:2: > > > ../lib/../scripts/dtc/libfdt/fdt_ro.c: In function 'fdt_get_name': > > > ../lib/../scripts/dtc/libfdt/fdt_ro.c:319:24: warning: 'strrchr' reading 1 or more bytes from a region of size 0 [-Wstringop-overread] > > > 319 | leaf = strrchr(nameptr, '/'); > > > | ^~~~~~~~~~~~~~~~~~~~~ > > > > > > Cc: Rob Herring <robh+dt@kernel.org> > > > Cc: Frank Rowand <frowand.list@gmail.com> > > > Cc: devicetree@vger.kernel.org > > > Signed-off-by: Kees Cook <keescook@chromium.org> > > > --- > > > scripts/dtc/libfdt/fdt.h | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > Changes to dtc/libfdt go to upstream dtc first and then we sync them back. > > Ah-ha, I've found it: https://github.com/dgibson/dtc Sent upstream: https://github.com/dgibson/dtc/pull/76
On Fri, Jan 27, 2023 at 6:24 PM Kees Cook <keescook@chromium.org> wrote: > > On Fri, Jan 27, 2023 at 04:12:21PM -0800, Kees Cook wrote: > > On Fri, Jan 27, 2023 at 05:44:13PM -0600, Rob Herring wrote: > > > On Fri, Jan 27, 2023 at 4:41 PM Kees Cook <keescook@chromium.org> wrote: > > > > > > > > Replace the 0-length array with a C99 flexible array. Seen with GCC 13 > > > > under -fstrict-flex-arrays: > > > > > > > > In file included from ../lib/fdt_ro.c:2: > > > > ../lib/../scripts/dtc/libfdt/fdt_ro.c: In function 'fdt_get_name': > > > > ../lib/../scripts/dtc/libfdt/fdt_ro.c:319:24: warning: 'strrchr' reading 1 or more bytes from a region of size 0 [-Wstringop-overread] > > > > 319 | leaf = strrchr(nameptr, '/'); > > > > | ^~~~~~~~~~~~~~~~~~~~~ > > > > > > > > Cc: Rob Herring <robh+dt@kernel.org> > > > > Cc: Frank Rowand <frowand.list@gmail.com> > > > > Cc: devicetree@vger.kernel.org > > > > Signed-off-by: Kees Cook <keescook@chromium.org> > > > > --- > > > > scripts/dtc/libfdt/fdt.h | 4 ++-- > > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > Changes to dtc/libfdt go to upstream dtc first and then we sync them back. > > > > Ah-ha, I've found it: https://github.com/dgibson/dtc > > Sent upstream: https://github.com/dgibson/dtc/pull/76 Maybe David will take that PR, but upstream is here[1]. Patches go to devicetree-compiler@vger.kernel.org. Rob [1] https://git.kernel.org/pub/scm/utils/dtc/dtc.git
diff --git a/scripts/dtc/libfdt/fdt.h b/scripts/dtc/libfdt/fdt.h index f2e68807f277..0c91aa7f67b5 100644 --- a/scripts/dtc/libfdt/fdt.h +++ b/scripts/dtc/libfdt/fdt.h @@ -35,14 +35,14 @@ struct fdt_reserve_entry { struct fdt_node_header { fdt32_t tag; - char name[0]; + char name[]; }; struct fdt_property { fdt32_t tag; fdt32_t len; fdt32_t nameoff; - char data[0]; + char data[]; }; #endif /* !__ASSEMBLY */
Replace the 0-length array with a C99 flexible array. Seen with GCC 13 under -fstrict-flex-arrays: In file included from ../lib/fdt_ro.c:2: ../lib/../scripts/dtc/libfdt/fdt_ro.c: In function 'fdt_get_name': ../lib/../scripts/dtc/libfdt/fdt_ro.c:319:24: warning: 'strrchr' reading 1 or more bytes from a region of size 0 [-Wstringop-overread] 319 | leaf = strrchr(nameptr, '/'); | ^~~~~~~~~~~~~~~~~~~~~ Cc: Rob Herring <robh+dt@kernel.org> Cc: Frank Rowand <frowand.list@gmail.com> Cc: devicetree@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> --- scripts/dtc/libfdt/fdt.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)