nbd: Fix potential signed overflow issues
Signed-off-by: Max Reitz <mreitz@redhat.com> Message-Id: <1424887718-10800-11-git-send-email-mreitz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									70d4739ef2
								
							
						
					
					
						commit
						ac97393dc7
					
				| @ -54,8 +54,8 @@ struct nbd_reply { | ||||
| /* Reply types. */ | ||||
| #define NBD_REP_ACK             (1)             /* Data sending finished. */ | ||||
| #define NBD_REP_SERVER          (2)             /* Export description. */ | ||||
| #define NBD_REP_ERR_UNSUP       ((1 << 31) | 1) /* Unknown option. */ | ||||
| #define NBD_REP_ERR_INVALID     ((1 << 31) | 3) /* Invalid length. */ | ||||
| #define NBD_REP_ERR_UNSUP       ((UINT32_C(1) << 31) | 1) /* Unknown option. */ | ||||
| #define NBD_REP_ERR_INVALID     ((UINT32_C(1) << 31) | 3) /* Invalid length. */ | ||||
| 
 | ||||
| #define NBD_CMD_MASK_COMMAND	0x0000ffff | ||||
| #define NBD_CMD_FLAG_FUA	(1 << 16) | ||||
|  | ||||
| @ -142,8 +142,9 @@ static void read_partition(uint8_t *p, struct partition_record *r) | ||||
|     r->end_head = p[5]; | ||||
|     r->end_cylinder = p[7] | ((p[6] << 2) & 0x300); | ||||
|     r->end_sector = p[6] & 0x3f; | ||||
|     r->start_sector_abs = p[8] | p[9] << 8 | p[10] << 16 | p[11] << 24; | ||||
|     r->nb_sectors_abs = p[12] | p[13] << 8 | p[14] << 16 | p[15] << 24; | ||||
| 
 | ||||
|     r->start_sector_abs = le32_to_cpup((uint32_t *)(p +  8)); | ||||
|     r->nb_sectors_abs   = le32_to_cpup((uint32_t *)(p + 12)); | ||||
| } | ||||
| 
 | ||||
| static int find_partition(BlockBackend *blk, int partition, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Max Reitz
						Max Reitz