diff options
-rw-r--r-- | libfdt/fdt.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libfdt/fdt.c b/libfdt/fdt.c index 04e1e06..6cf2fa0 100644 --- a/libfdt/fdt.c +++ b/libfdt/fdt.c @@ -314,9 +314,12 @@ const char *fdt_find_string_(const char *strtab, int tabsize, const char *s) int fdt_move(const void *fdt, void *buf, int bufsize) { + if (!can_assume(VALID_INPUT) && bufsize < 0) + return -FDT_ERR_NOSPACE; + FDT_RO_PROBE(fdt); - if (fdt_totalsize(fdt) > bufsize) + if (fdt_totalsize(fdt) > (unsigned int)bufsize) return -FDT_ERR_NOSPACE; memmove(buf, fdt, fdt_totalsize(fdt)); |