[Ocfs2-devel] [PATCH] Use bigger nodestr to accomodate 32-bit node numbers

Goldwyn Rodrigues rgoldwyn at suse.de
Thu Aug 29 05:15:00 PDT 2013


On 08/29/2013 04:52 AM, Jeff Liu wrote:
> Hi Goldwyn,
>
> On 08/28/2013 12:15 PM, Goldwyn Rodrigues wrote:
>
>> While using pacemaker/corosync, the node numbers are generated using
>> IP address as opposed to serial node number generation. This may
>> not fit in a 8-byte string. Use a bigger string to print the
>> complete node number.
>
> I have no experience of pacemaker/corosync, so here is my comments
> pointing against this change only if we would expand the nodestr. :)
>
>>
>> Signed-off-by: Goldwyn Rodrigues <rgoldwyn at suse.com>
>> ---
>> diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
>> index 854d809..bc947e0 100644
>> --- a/fs/ocfs2/super.c
>> +++ b/fs/ocfs2/super.c
>> @@ -1022,7 +1022,7 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
>>   	struct inode *inode = NULL;
>>   	struct ocfs2_super *osb = NULL;
>>   	struct buffer_head *bh = NULL;
>> -	char nodestr[8];
>> +	char nodestr[12];
>
> We have the corresponding debugging logic at ocfs2_dismount_volume(), which
> defines the nodestr with the old size, it seems that this change would cause
> potential buffer overflow while restore a bigger nodestr at it.

Yes, you are right. I will add the change in ocfs2_dismount_volume()  as 
well. Sorry, I missed this.

Andrew: Would you prefer a combined patch or a separate one?

>
> Also, there might has another relationship to ocfs2_control_message_setn/down
> at stack_user.c because we limit the length of nodenum with a marco:
> #define OCFS2_CONTROL_MESSAGE_NODENUM_LEN       8
>
> Maybe we should unify them?

This is a part of protocol to talk to the control daemon so we might not 
be able to just change this constant with changing other aspects such as 
the tools and the protocol versioning.

I am trying to get rid of control daemon handling altogether. Check my 
patches on "nocontrold". We are waiting for some review there. If that 
works, we don't need to change this constant ;)


-- 
Goldwyn



More information about the Ocfs2-devel mailing list