[Ocfs2-devel] [PATCH] Use bigger nodestr to accomodate 32-bit node numbers
Jeff Liu
jeff.liu at oracle.com
Thu Aug 29 02:52:33 PDT 2013
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.
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?
Thanks,
-Jeff
More information about the Ocfs2-devel
mailing list