mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	FileSys::Ticket::Load: Return error if signature type does not match (#4339)
* FileSys::Ticket::Load: Return error if signature type does not match * fixup! FileSys::Ticket::Load: Return error if signature type does not match
This commit is contained in:
		
							parent
							
								
									0df32275a7
								
							
						
					
					
						commit
						b01b94d843
					
				
					 3 changed files with 10 additions and 1 deletions
				
			
		|  | @ -33,7 +33,7 @@ inline u32 GetSignatureSize(u32 signature_type) { | |||
|         return 0x3C; | ||||
|     } | ||||
| 
 | ||||
|     UNREACHABLE(); | ||||
|     LOG_ERROR(Common_Filesystem, "Tried to read ticket with bad signature {}", signature_type); | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,6 +22,9 @@ Loader::ResultStatus Ticket::Load(const std::vector<u8> file_data, std::size_t o | |||
| 
 | ||||
|     // Signature lengths are variable, and the body follows the signature
 | ||||
|     u32 signature_size = GetSignatureSize(signature_type); | ||||
|     if (signature_size == 0) { | ||||
|         return Loader::ResultStatus::Error; | ||||
|     } | ||||
| 
 | ||||
|     // The ticket body start position is rounded to the nearest 0x40 after the signature
 | ||||
|     std::size_t body_start = Common::AlignUp(signature_size + sizeof(u32), 0x40); | ||||
|  |  | |||
|  | @ -42,6 +42,9 @@ Loader::ResultStatus TitleMetadata::Load(const std::vector<u8> file_data, std::s | |||
| 
 | ||||
|     // Signature lengths are variable, and the body follows the signature
 | ||||
|     u32 signature_size = GetSignatureSize(signature_type); | ||||
|     if (signature_size == 0) { | ||||
|         return Loader::ResultStatus::Error; | ||||
|     } | ||||
| 
 | ||||
|     // The TMD body start position is rounded to the nearest 0x40 after the signature
 | ||||
|     std::size_t body_start = Common::AlignUp(signature_size + sizeof(u32), 0x40); | ||||
|  | @ -84,6 +87,9 @@ Loader::ResultStatus TitleMetadata::Save(const std::string& file_path) { | |||
| 
 | ||||
|     // Signature lengths are variable, and the body follows the signature
 | ||||
|     u32 signature_size = GetSignatureSize(signature_type); | ||||
|     if (signature_size == 0) { | ||||
|         return Loader::ResultStatus::Error; | ||||
|     } | ||||
| 
 | ||||
|     if (!file.WriteBytes(tmd_signature.data(), signature_size)) | ||||
|         return Loader::ResultStatus::Error; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue