diff options
| author | Mengxi-Xu <[email protected]> | 2023-06-05 01:50:04 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-06-04 13:50:04 -0400 |
| commit | d2308d41d75033e9027e466eff126696cd921523 (patch) | |
| tree | 8d4fab032e5b09bdeff2efe0e90b9f314749ce5c | |
| parent | 1c7e7738a7248cd445cdf01fc5b6aa49e879b4d8 (diff) | |
[components] [fdt] add parameter check
| -rw-r--r-- | components/drivers/fdt/libfdt/fdt_rw.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/components/drivers/fdt/libfdt/fdt_rw.c b/components/drivers/fdt/libfdt/fdt_rw.c index 74954c2f28..58827ef898 100644 --- a/components/drivers/fdt/libfdt/fdt_rw.c +++ b/components/drivers/fdt/libfdt/fdt_rw.c @@ -96,7 +96,9 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen) { char *p = splicepoint; char *end = (char *)fdt + _fdt_data_size(fdt); - + + if (oldlen <= 0) + return -FDT_ERR_BADOFFSET; if (((p + oldlen) < p) || ((p + oldlen) > end)) return -FDT_ERR_BADOFFSET; if ((p < (char *)fdt) || ((end - oldlen + newlen) < (char *)fdt)) |
