rem: strcpy(lm->path, path); lm->ref_cnt = 0;
context: load_module_file(const char *path) {	image_id file_image = elf_load_kspace(path, "");	loaded_module *lm;		if (file_image < 0 ) {		SHOW_FLOW( 3, "couldn't load image %s (%s)\n", path, strerror(file_image));		dprintf("load_module_file failed! returned %ld\n", file_image);		return NULL;	}	lm = (loaded_module*)malloc(sizeof(loaded_module));	if (!lm)		return NULL;		lm->info = (module_info**) elf_lookup_symbol(file_image, "modules");	if (!lm->info) {		dprintf("Failed to load %s due to lack of 'modules' symbol\n", path);		free(lm);		return NULL;	}			lm->path = (char*)malloc(strlen(path) + 1);	if (!lm->path) {		free(lm);		return NULL;	}	strcpy(lm->path, path);	lm->ref_cnt = 0;	recursive_lock_lock(&modules_lock);	insque(lm, &loaded_modules);	hash_set(module_files, path, strlen(path), lm);	recursive_lock_unlock(&modules_lock);	return lm->info;}