memset(ime_new, 0, sizeof(*ime_new)); 
void inter_module_register(const char *im_name, struct module *owner, const void *userdata){	struct list_head *tmp;	struct inter_module_entry *ime, *ime_new;	if (!(ime_new = kmalloc(sizeof(*ime), GFP_KERNEL))) {		/* Overloaded kernel, not fatal */		printk(KERN_ERR			"Aiee, inter_module_register: cannot kmalloc entry for '%s'\n",			im_name);		kmalloc_failed = 1;		return;	}	memset(ime_new, 0, sizeof(*ime_new));	ime_new->im_name = im_name;	ime_new->owner = owner;	ime_new->userdata = userdata;	spin_lock(&ime_lock);	list_for_each(tmp, &ime_list) {		ime = list_entry(tmp, struct inter_module_entry, list);		if (strcmp(ime->im_name, im_name) == 0) {			spin_unlock(&ime_lock);			kfree(ime_new);			/* Program logic error, fatal */			printk(KERN_ERR "inter_module_register: duplicate im_name '%s'", im_name);			BUG();		}	}	list_add(&(ime_new->list), &ime_list);	spin_unlock(&ime_lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/dd3927105b6f65afb7dac17682172cdfb86d3f00/intermodule.c/buggy/kernel/intermodule.c