rem: newc.target.target.u.target_size = sizeof(STRUCT_STANDARD_TARGET);
add: newc.target.target.u.target_size = IPT_ALIGN(sizeof(STRUCT_STANDARD_TARGET));
context: TC_CREATE_CHAIN(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle){	int ret;	struct {		STRUCT_ENTRY head;		struct ipt_error_target name;		STRUCT_ENTRY ret;		STRUCT_STANDARD_TARGET target;	} newc;	iptc_fn = TC_CREATE_CHAIN;	/* find_label doesn't cover built-in targets: DROP, ACCEPT,           QUEUE, RETURN. */	if (find_label(chain, *handle)	    || strcmp(chain, LABEL_DROP) == 0	    || strcmp(chain, LABEL_ACCEPT) == 0	    || strcmp(chain, IPTC_LABEL_QUEUE) == 0	    || strcmp(chain, LABEL_RETURN) == 0) {		errno = EEXIST;		return 0;	}	if (strlen(chain)+1 > sizeof(IPT_CHAINLABEL)) {		errno = EINVAL;		return 0;	}	memset(&newc, 0, sizeof(newc));	newc.head.target_offset = sizeof(STRUCT_ENTRY);	newc.head.next_offset		= sizeof(STRUCT_ENTRY) + sizeof(struct ipt_error_target);	strcpy(newc.name.t.u.user.name, IPT_ERROR_TARGET);	newc.name.t.u.target_size = sizeof(struct ipt_error_target);	strcpy(newc.name.error, chain);	newc.ret.target_offset = sizeof(STRUCT_ENTRY);	newc.ret.next_offset		= sizeof(STRUCT_ENTRY)+sizeof(STRUCT_STANDARD_TARGET);	strcpy(newc.target.target.u.user.name, STANDARD_TARGET);	newc.target.target.u.target_size = sizeof(STRUCT_STANDARD_TARGET);	newc.target.verdict = RETURN;	/* Add just before terminal entry */	ret = insert_rules(2, sizeof(newc), &newc.head,			   index2offset(*handle, (*handle)->new_number - 1),			   (*handle)->new_number - 1,			   0, handle);	return ret;}