Compare commits

...

2 commits

Author SHA1 Message Date
Herve Codina
68b960e299 fdtdump: Remove dtb version check
Some checks failed
Build test / build-make (alpine) (push) Has been cancelled
Build test / build-make (archlinux) (push) Has been cancelled
Build test / build-make (fedora) (push) Has been cancelled
Build test / build-make (ubuntu) (push) Has been cancelled
Build test / build-meson (alpine) (push) Has been cancelled
Build test / build-meson (archlinux) (push) Has been cancelled
Build test / build-meson (fedora) (push) Has been cancelled
Build test / build-meson (ubuntu) (push) Has been cancelled
Build test / clang64 (push) Has been cancelled
Build test / mingw32 (push) Has been cancelled
Build test / mingw64 (push) Has been cancelled
Build test / ucrt64 (push) Has been cancelled
fdtdump checks the dtb version and simply failed if the dtb version is
newer than the last version supported by fdtdump.

This check is not needed and too restrictive. Indeed, fdtdump does
read-only operations on the dtb provided and should rely only the
last_comp_version header field to know whether or not it can read the
dtb.

The current check also avoid the use of fdtdump in tests checking for
the libfdt behavior when an new (future) dtb version is used.

Relax fdtdump checks removing the check of the dtb version header field.

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Message-ID: <20260210173349.636766-3-herve.codina@bootlin.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2026-02-14 13:03:18 +11:00
Herve Codina
adba02caf5 dtc: Use a consistent type for basenamelen
The basenamelen member in the node structure is set in all cases to
a positive value, the length of the basename string. Also it is used as
parameters on function expecting a size_t type.

Further more an implicit cast of strspn() returned value from size_t to
int is needed in checks.c to avoid a signed/unsigned compilation warning
when this value is checked.

This member has no reason to be a signed integer and its obvious type is
size_t.

Be consistent and fix its type.

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Message-ID: <20260210173349.636766-2-herve.codina@bootlin.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2026-02-13 16:27:22 +11:00
3 changed files with 2 additions and 3 deletions

View file

@ -324,7 +324,7 @@ ERROR(node_name_chars, check_node_name_chars, NODECHARS);
static void check_node_name_chars_strict(struct check *c, struct dt_info *dti, static void check_node_name_chars_strict(struct check *c, struct dt_info *dti,
struct node *node) struct node *node)
{ {
int n = strspn(node->name, c->data); size_t n = strspn(node->name, c->data);
if (n < node->basenamelen) if (n < node->basenamelen)
FAIL(c, dti, node, "Character '%c' not recommended in node name", FAIL(c, dti, node, "Character '%c' not recommended in node name",

2
dtc.h
View file

@ -227,7 +227,7 @@ struct node {
struct node *next_sibling; struct node *next_sibling;
char *fullpath; char *fullpath;
int basenamelen; size_t basenamelen;
cell_t phandle; cell_t phandle;
int addr_cells, size_cells; int addr_cells, size_cells;

View file

@ -169,7 +169,6 @@ static bool valid_header(char *p, size_t len)
{ {
if (len < sizeof(struct fdt_header) || if (len < sizeof(struct fdt_header) ||
fdt_magic(p) != FDT_MAGIC || fdt_magic(p) != FDT_MAGIC ||
fdt_version(p) > MAX_VERSION ||
fdt_last_comp_version(p) > MAX_VERSION || fdt_last_comp_version(p) > MAX_VERSION ||
fdt_totalsize(p) >= len || fdt_totalsize(p) >= len ||
fdt_off_dt_struct(p) >= len || fdt_off_dt_struct(p) >= len ||