rem: if (check_inverse(optarg, &invert))
add: if (check_inverse(optarg, &invert, NULL, 0))
context: static int parse(int c, char **argv, int invert, unsigned int *flags,		 const struct ipt_entry *entry,		 struct ipt_entry_target **target){	struct ipt_ulog_info *loginfo =	    (struct ipt_ulog_info *) (*target)->data;	int group_d;	switch (c) {	case '!':		if (*flags & IPT_LOG_OPT_NLGROUP)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --ulog-nlgroup twice");		if (check_inverse(optarg, &invert))			exit_error(PARAMETER_PROBLEM,				   "Unexpected `!' after --ulog-nlgroup");		group_d = atoi(optarg);		if (group_d > 32 || group_d < 1)			exit_error(PARAMETER_PROBLEM,				   "--ulog-nlgroup has to be between 1 and 32");		loginfo->nl_group = (1 << (group_d - 1));		*flags |= IPT_LOG_OPT_NLGROUP;		break;	case '#':		if (*flags & IPT_LOG_OPT_PREFIX)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --ulog-prefix twice");		if (check_inverse(optarg, &invert))			exit_error(PARAMETER_PROBLEM,				   "Unexpected `!' after --ulog-prefix");		if (strlen(optarg) > sizeof(loginfo->prefix) - 1)			exit_error(PARAMETER_PROBLEM,				   "Maximum prefix length %u for --ulog-prefix",				   sizeof(loginfo->prefix) - 1);		strcpy(loginfo->prefix, optarg);		*flags |= IPT_LOG_OPT_PREFIX;		break;	case 'A':		if (*flags & IPT_LOG_OPT_CPRANGE)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --ulog-cprange twice");		if (atoi(optarg) < 0)			exit_error(PARAMETER_PROBLEM,				   "Negative copy range?");		loginfo->copy_range = atoi(optarg);		*flags |= IPT_LOG_OPT_CPRANGE;		break;	case 'B':		if (*flags & IPT_LOG_OPT_QTHRESHOLD)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --ulog-qthreshold twice");		if (atoi(optarg) < 1)			exit_error(PARAMETER_PROBLEM,				   "Negative or zero queue threshold ?");		if (atoi(optarg) > ULOG_MAX_QLEN)			exit_error(PARAMETER_PROBLEM,				   "Maximum queue length exceeded");		loginfo->qthreshold = atoi(optarg);		*flags |= IPT_LOG_OPT_QTHRESHOLD;		break;	}	return 1;}