diff options
Diffstat (limited to 'scripts/dtc/libfdt/fdt_rw.c')
-rw-r--r-- | scripts/dtc/libfdt/fdt_rw.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/scripts/dtc/libfdt/fdt_rw.c b/scripts/dtc/libfdt/fdt_rw.c index 70adec6c371b..8be02b1f68f3 100644 --- a/scripts/dtc/libfdt/fdt_rw.c +++ b/scripts/dtc/libfdt/fdt_rw.c | |||
@@ -101,6 +101,8 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen) | |||
101 | 101 | ||
102 | if (((p + oldlen) < p) || ((p + oldlen) > end)) | 102 | if (((p + oldlen) < p) || ((p + oldlen) > end)) |
103 | return -FDT_ERR_BADOFFSET; | 103 | return -FDT_ERR_BADOFFSET; |
104 | if ((p < (char *)fdt) || ((end - oldlen + newlen) < (char *)fdt)) | ||
105 | return -FDT_ERR_BADOFFSET; | ||
104 | if ((end - oldlen + newlen) > ((char *)fdt + fdt_totalsize(fdt))) | 106 | if ((end - oldlen + newlen) > ((char *)fdt + fdt_totalsize(fdt))) |
105 | return -FDT_ERR_NOSPACE; | 107 | return -FDT_ERR_NOSPACE; |
106 | memmove(p + newlen, p + oldlen, end - p - oldlen); | 108 | memmove(p + newlen, p + oldlen, end - p - oldlen); |