[lvm-devel] [PATCH] Use correct array size!

Zdenek Kabelac zkabelac at redhat.com
Mon Mar 15 09:10:16 UTC 2010


On 15.3.2010 10:03, Zdenek Kabelac wrote:
> On 13.3.2010 01:17, Malahal Naineni wrote:
>> Signed-off-by: Malahal Naineni (malahal at us.ibm.com)
>>
>> diff -r 5d08ba4ae8e8 -r 8db1b9ee17a8 daemons/dmeventd/dmeventd.c
>> --- a/daemons/dmeventd/dmeventd.c	Thu Mar 11 16:05:21 2010 -0800
>> +++ b/daemons/dmeventd/dmeventd.c	Fri Mar 12 16:15:25 2010 -0800
>> @@ -1369,7 +1369,7 @@ static int _handle_request(struct dm_eve
>>  		{ DM_EVENT_CMD_ACTIVE, _active},
>>  	}, *req;
>>  
>> -	for (req = requests; req < requests + sizeof(requests); req++)
>> +	for (req = requests; req < requests + sizeof(requests) / sizeof(requests[0]); req++)
>>  		if (req->cmd == msg->cmd)
>>  			return req->f(message_data);
> 
> 
> NACK
> 
> Moving via pointers - thus you need to check whether pointer passes
> array boundary (just like C++ vector() iterator)
> 
> see the difference:
> for(req = 0; i < sizeof(requests) / sizeof(requests[0]); req++0

Ahh, I've confused myself.

as req is pointer of the same type, pointer arithmetic applies here as well,
so the patch is correct. We need to add number of array elements.

Zdenek




More information about the lvm-devel mailing list