rem: if (ta->target_size != tb->target_size)
add: if (ta->u.target_size != tb->u.target_size)
context: is_same(const struct ipt_entry *a, const struct ipt_entry *b,	unsigned char *matchmask){	unsigned int i;	struct ipt_entry_target *ta, *tb;	unsigned char *mptr;	/* Always compare head structures: ignore mask here. */	if (a->ip.src.s_addr != b->ip.src.s_addr	    || a->ip.dst.s_addr != b->ip.dst.s_addr	    || a->ip.smsk.s_addr != b->ip.smsk.s_addr	    || a->ip.smsk.s_addr != b->ip.smsk.s_addr	    || a->ip.proto != b->ip.proto	    || a->ip.flags != b->ip.flags	    || a->ip.invflags != b->ip.invflags)		return 0;	for (i = 0; i < IFNAMSIZ; i++) {		if (a->ip.iniface_mask[i] != b->ip.iniface_mask[i])			return 0;		if ((a->ip.iniface[i] & a->ip.iniface_mask[i])		    != (b->ip.iniface[i] & b->ip.iniface_mask[i]))			return 0;		if (a->ip.outiface_mask[i] != b->ip.outiface_mask[i])			return 0;		if ((a->ip.outiface[i] & a->ip.outiface_mask[i])		    != (b->ip.outiface[i] & b->ip.outiface_mask[i]))			return 0;	}	if (a->nfcache != b->nfcache	    || a->target_offset != b->target_offset	    || a->next_offset != b->next_offset)		return 0;	mptr = matchmask + sizeof(struct ipt_entry);	if (IPT_MATCH_ITERATE(a, match_different, a->elems, b->elems, &mptr))		return 0;	ta = ipt_get_target((struct ipt_entry *)a);	tb = ipt_get_target((struct ipt_entry *)b);	if (ta->target_size != tb->target_size)		return 0;	if (strcmp(ta->u.name, tb->u.name) != 0)		return 0;	mptr += sizeof(*ta);	if (target_different(ta->data, tb->data,			     ta->target_size - sizeof(*ta), mptr))		return 0;   	return 1;}