| 75 | } |
| 76 | |
| 77 | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) |
| 78 | { |
| 79 | unsigned absoffset = offset + fdt_off_dt_struct(fdt); |
| 80 | |
| 81 | if ((absoffset < offset) |
| 82 | || ((absoffset + len) < absoffset) |
| 83 | || (absoffset + len) > fdt_totalsize(fdt)) |
| 84 | return NULL; |
| 85 | |
| 86 | if (fdt_version(fdt) >= 0x11) |
| 87 | if (((offset + len) < offset) |
| 88 | || ((offset + len) > fdt_size_dt_struct(fdt))) |
| 89 | return NULL; |
| 90 | |
| 91 | return fdt_offset_ptr_(fdt, offset); |
| 92 | } |
| 93 | |
| 94 | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) |
| 95 | { |
no test coverage detected