nbd: Fix 32-bit compilation on BLOCK_STATUS
iotests 123 and 209 fail on 32-bit platforms. The culprit: sizeof(extent) is wrong; we want sizeof(*extent). But since the struct is 8 bytes, it happened to work on 64-bit platforms where the pointer is also 8 bytes (nasty). Fixes: 78a33ab58 Reported-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <20180327210517.1804242-1-eblake@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
This commit is contained in:
		
							parent
							
								
									f184de7553
								
							
						
					
					
						commit
						00d96a4612
					
				@ -239,7 +239,7 @@ static int nbd_parse_blockstatus_payload(NBDClientSession *client,
 | 
			
		||||
{
 | 
			
		||||
    uint32_t context_id;
 | 
			
		||||
 | 
			
		||||
    if (chunk->length != sizeof(context_id) + sizeof(extent)) {
 | 
			
		||||
    if (chunk->length != sizeof(context_id) + sizeof(*extent)) {
 | 
			
		||||
        error_setg(errp, "Protocol error: invalid payload for "
 | 
			
		||||
                         "NBD_REPLY_TYPE_BLOCK_STATUS");
 | 
			
		||||
        return -EINVAL;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user