prevent unintended sign extension errors
When an unsigned char is shifted << 24 bits its type will be promoted to signed 32-bits. If the value is then assigned to an unsigned 64-bit value sign extension will occur. Prevent the unwanted sign extension by explicitly casting the value to unsigned long before shifting. Change-Id: Iabeac0f17dc3229a2dc89abe71960a8ffbf523f8
This commit is contained in:
		 Jeffrey Altman
					Jeffrey Altman
				
			
				
					committed by
					
						 Jeffrey Altman
						Jeffrey Altman
					
				
			
			
				
	
			
			
			 Jeffrey Altman
						Jeffrey Altman
					
				
			
						parent
						
							3707c52ea7
						
					
				
				
					commit
					f341fa7721
				
			| @@ -69,8 +69,9 @@ data_hash(void *ptr) | ||||
|  | ||||
|     if (os->length < 4) | ||||
| 	return os->length; | ||||
|     return s[0] | (s[1] << 8) | | ||||
| 	(s[os->length - 2] << 16) | (s[os->length - 1] << 24); | ||||
|  | ||||
|     return ((unsigned long)s[os->length - 1] << 24) | ||||
| 	| (s[os->length - 2] << 16) | (s[1] << 8) | s[0]; | ||||
| } | ||||
|  | ||||
| struct heim_type_data _heim_data_object = { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user