firmware-utils/tplink-safeloader: make vendor data optional
Restructure the code a bit to allow for omitting vendor data when generating factory images. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
		 Jo-Philipp Wich
					Jo-Philipp Wich
				
			
				
					committed by
					
						 Matthias Schiffer
						Matthias Schiffer
					
				
			
			
				
	
			
			
			 Matthias Schiffer
						Matthias Schiffer
					
				
			
						parent
						
							c21af889bb
						
					
				
				
					commit
					d58e8a9076
				
			| @@ -449,10 +449,6 @@ static void put_partitions(uint8_t *buffer, const struct image_partition_entry * | |||||||
|  |  | ||||||
| 		base += parts[i].size; | 		base += parts[i].size; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	image_pt++; |  | ||||||
|  |  | ||||||
| 	memset(image_pt, 0xff, end-image_pt); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| /** Generates and writes the image MD5 checksum */ | /** Generates and writes the image MD5 checksum */ | ||||||
| @@ -492,12 +488,14 @@ static void * generate_factory_image(const char *vendor, const struct image_part | |||||||
| 	if (!image) | 	if (!image) | ||||||
| 		error(1, errno, "malloc"); | 		error(1, errno, "malloc"); | ||||||
|  |  | ||||||
|  | 	memset(image, 0xff, *len); | ||||||
| 	put32(image, *len); | 	put32(image, *len); | ||||||
|  |  | ||||||
|  | 	if (vendor) { | ||||||
| 		size_t vendor_len = strlen(vendor); | 		size_t vendor_len = strlen(vendor); | ||||||
| 		put32(image+0x14, vendor_len); | 		put32(image+0x14, vendor_len); | ||||||
| 		memcpy(image+0x18, vendor, vendor_len); | 		memcpy(image+0x18, vendor, vendor_len); | ||||||
| 	memset(image+0x18+vendor_len, 0xff, 4092-vendor_len); | 	} | ||||||
|  |  | ||||||
| 	put_partitions(image + 0x1014, parts); | 	put_partitions(image + 0x1014, parts); | ||||||
| 	put_md5(image+0x04, image+0x14, *len-0x14); | 	put_md5(image+0x04, image+0x14, *len-0x14); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user