tools: kwbimage: Properly calculate and align kwbimage v0 header size
Kwbimage v0 has similar alignment requirements as v1. Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
		
							parent
							
								
									2b0980c240
								
							
						
					
					
						commit
						851114be1a
					
				|  | @ -879,6 +879,20 @@ static size_t image_headersz_align(size_t headersz, uint8_t blockid) | ||||||
| 		return headersz; | 		return headersz; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | static size_t image_headersz_v0(int *hasext) | ||||||
|  | { | ||||||
|  | 	size_t headersz; | ||||||
|  | 
 | ||||||
|  | 	headersz = sizeof(struct main_hdr_v0); | ||||||
|  | 	if (image_count_options(IMAGE_CFG_DATA) > 0) { | ||||||
|  | 		headersz += sizeof(struct ext_hdr_v0); | ||||||
|  | 		if (hasext) | ||||||
|  | 			*hasext = 1; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return image_headersz_align(headersz, image_get_bootfrom()); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| static void *image_create_v0(size_t *imagesz, struct image_tool_params *params, | static void *image_create_v0(size_t *imagesz, struct image_tool_params *params, | ||||||
| 			     int payloadsz) | 			     int payloadsz) | ||||||
| { | { | ||||||
|  | @ -892,12 +906,7 @@ static void *image_create_v0(size_t *imagesz, struct image_tool_params *params, | ||||||
| 	 * Calculate the size of the header and the size of the | 	 * Calculate the size of the header and the size of the | ||||||
| 	 * payload | 	 * payload | ||||||
| 	 */ | 	 */ | ||||||
| 	headersz  = sizeof(struct main_hdr_v0); | 	headersz = image_headersz_v0(&has_ext); | ||||||
| 
 |  | ||||||
| 	if (image_count_options(IMAGE_CFG_DATA) > 0) { |  | ||||||
| 		has_ext = 1; |  | ||||||
| 		headersz += sizeof(struct ext_hdr_v0); |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	image = malloc(headersz); | 	image = malloc(headersz); | ||||||
| 	if (!image) { | 	if (!image) { | ||||||
|  | @ -1854,8 +1863,7 @@ static int kwbimage_generate(struct image_tool_params *params, | ||||||
| 		 */ | 		 */ | ||||||
| 	case -1: | 	case -1: | ||||||
| 	case 0: | 	case 0: | ||||||
| 		alloc_len = sizeof(struct main_hdr_v0) + | 		alloc_len = image_headersz_v0(NULL); | ||||||
| 			sizeof(struct ext_hdr_v0); |  | ||||||
| 		break; | 		break; | ||||||
| 
 | 
 | ||||||
| 	case 1: | 	case 1: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue