if (nfattr_parse_nested(tb, CTA_PROTO_MAX, attr) < 0) goto nfattr_failure; 
nfattr_parse_nested(tb, CTA_PROTO_MAX, attr); 
ctnetlink_parse_tuple_proto(struct nfattr *attr, 			    struct ip_conntrack_tuple *tuple){	struct nfattr *tb[CTA_PROTO_MAX];	struct ip_conntrack_protocol *proto;	int ret = 0;	DEBUGP("entered %s\n", __FUNCTION__);	if (nfattr_parse_nested(tb, CTA_PROTO_MAX, attr) < 0)		goto nfattr_failure;	if (nfattr_bad_size(tb, CTA_PROTO_MAX, cta_min_proto))		return -EINVAL;	if (!tb[CTA_PROTO_NUM-1])		return -EINVAL;	tuple->dst.protonum = *(u_int16_t *)NFA_DATA(tb[CTA_PROTO_NUM-1]);	proto = ip_conntrack_proto_find_get(tuple->dst.protonum);	if (likely(proto && proto->nfattr_to_tuple)) {		ret = proto->nfattr_to_tuple(tb, tuple);		ip_conntrack_proto_put(proto);	}		return ret;nfattr_failure:	return -1;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a2506c04322ca266fe2f9bd7d02a67b1972da611/ip_conntrack_netlink.c/buggy/net/ipv4/netfilter/ip_conntrack_netlink.c