if (inc->timeout_table) kfree(inc->timeout_table); 
kfree(inc->timeout_table); 
ip_vs_app_inc_new(struct ip_vs_app *app, __u16 proto, __u16 port){	struct ip_vs_protocol *pp;	struct ip_vs_app *inc;	int ret;	if (!(pp = ip_vs_proto_get(proto)))		return -EPROTONOSUPPORT;	if (!pp->unregister_app)		return -EOPNOTSUPP;	inc = kmalloc(sizeof(struct ip_vs_app), GFP_KERNEL);	if (!inc)		return -ENOMEM;	memcpy(inc, app, sizeof(*inc));	INIT_LIST_HEAD(&inc->p_list);	INIT_LIST_HEAD(&inc->incs_list);	inc->app = app;	inc->port = htons(port);	atomic_set(&inc->usecnt, 0);	if (app->timeouts) {		inc->timeout_table =			ip_vs_create_timeout_table(app->timeouts,						   app->timeouts_size);		if (!inc->timeout_table) {			ret = -ENOMEM;			goto out;		}	}	ret = pp->register_app(inc);	if (ret)		goto out;	list_add(&inc->a_list, &app->incs_list);	IP_VS_DBG(9, "%s application %s:%u registered\n",		  pp->name, inc->name, inc->port);	return 0;  out:	if (inc->timeout_table)		kfree(inc->timeout_table);	kfree(inc);	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a51482bde22f99c63fbbb57d5d46cc666384e379/ip_vs_app.c/buggy/net/ipv4/ipvs/ip_vs_app.c