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; | ||||
| 	} | ||||
|  | ||||
| 	image_pt++; | ||||
|  | ||||
| 	memset(image_pt, 0xff, end-image_pt); | ||||
| } | ||||
|  | ||||
| /** 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) | ||||
| 		error(1, errno, "malloc"); | ||||
|  | ||||
| 	memset(image, 0xff, *len); | ||||
| 	put32(image, *len); | ||||
|  | ||||
| 	if (vendor) { | ||||
| 		size_t vendor_len = strlen(vendor); | ||||
| 		put32(image+0x14, vendor_len); | ||||
| 		memcpy(image+0x18, vendor, vendor_len); | ||||
| 	memset(image+0x18+vendor_len, 0xff, 4092-vendor_len); | ||||
| 	} | ||||
|  | ||||
| 	put_partitions(image + 0x1014, parts); | ||||
| 	put_md5(image+0x04, image+0x14, *len-0x14); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user