diff options
Diffstat (limited to 'scripts/dtc/libfdt/fdt_sw.c')
| -rw-r--r-- | scripts/dtc/libfdt/fdt_sw.c | 11 | 
1 files changed, 5 insertions, 6 deletions
diff --git a/scripts/dtc/libfdt/fdt_sw.c b/scripts/dtc/libfdt/fdt_sw.c index 698329e0cca..55ebebf1eb2 100644 --- a/scripts/dtc/libfdt/fdt_sw.c +++ b/scripts/dtc/libfdt/fdt_sw.c @@ -70,7 +70,7 @@ static int _fdt_sw_check_header(void *fdt)  			return err; \  	} -static void *_fdt_grab_space(void *fdt, int len) +static void *_fdt_grab_space(void *fdt, size_t len)  {  	int offset = fdt_size_dt_struct(fdt);  	int spaceleft; @@ -82,7 +82,7 @@ static void *_fdt_grab_space(void *fdt, int len)  		return NULL;  	fdt_set_size_dt_struct(fdt, offset + len); -	return fdt_offset_ptr_w(fdt, offset, len); +	return _fdt_offset_ptr_w(fdt, offset);  }  int fdt_create(void *buf, int bufsize) @@ -237,18 +237,17 @@ int fdt_finish(void *fdt)  	while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {  		if (tag == FDT_PROP) {  			struct fdt_property *prop = -				fdt_offset_ptr_w(fdt, offset, sizeof(*prop)); +				_fdt_offset_ptr_w(fdt, offset);  			int nameoff; -			if (! prop) -				return -FDT_ERR_BADSTRUCTURE; -  			nameoff = fdt32_to_cpu(prop->nameoff);  			nameoff += fdt_size_dt_strings(fdt);  			prop->nameoff = cpu_to_fdt32(nameoff);  		}  		offset = nextoffset;  	} +	if (nextoffset < 0) +		return nextoffset;  	/* Finally, adjust the header */  	fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));  | 
