Skip to contentSkip to conversation

kernel/param.c: add_sysfs_param memset?

DISCUSSION Joe Perches 1 participant 1 message May 9, 2011

lore
Share & tools
lore
#0 lore raw

Looks wrong to me.

static __modinit int add_sysfs_param(struct module_kobject *mk,
const struct kernel_param *kp, const char *name)

{
	struct module_param_attrs *new;
	struct attribute **attrs;
[]
	if (!mk->mp) {
		num = 0;
		attrs = NULL;
	} else {
		num = mk->mp->num;
		attrs = mk->mp->grp.attrs;
	}

	/* Enlarge. */
[]
	attrs = krealloc(attrs, sizeof(new->grp.attrs[0])*(num+2), GFP_KERNEL);
[]
	memset(&attrs[num], 0, sizeof(attrs[num]));

sizeof(attrs[num]) is a pointer.

I presume this should be

	memset(&attrs[num], 0, sizeof(*attrs[num]));
or
	memset(&attrs[num], 0, sizeof(struct attribute));

If it's really just to set the pointer, a set to NULL is better.

	attrs[num] = NULL;