rem: if (check_inverse(optarg, &invert)) optind++;
add: check_inverse(optarg, &invert, &optind, 0);
context: parse(int c, char **argv, int invert, unsigned int *flags,      const struct ip6t_entry *entry,      unsigned int *nfcache,      struct ip6t_entry_match **match){	struct ip6t_owner_info *ownerinfo = (struct ip6t_owner_info *)(*match)->data;	switch (c) {		char *end;		struct passwd *pwd;		struct group *grp;	case '1':		if (check_inverse(optarg, &invert))			optind++;		if ((pwd = getpwnam(optarg)))			ownerinfo->uid = pwd->pw_uid;		else {			ownerinfo->uid = strtoul(optarg, &end, 0);			if (*end != '\0' || end == optarg)				exit_error(PARAMETER_PROBLEM, "Bad OWNER UID value `%s'", optarg);		}		if (invert)			ownerinfo->invert |= IP6T_OWNER_UID;		ownerinfo->match |= IP6T_OWNER_UID;		*flags = 1;		break;	case '2':		if (check_inverse(optarg, &invert))			optind++;		if ((grp = getgrnam(optarg)))			ownerinfo->gid = grp->gr_gid;		else {			ownerinfo->gid = strtoul(optarg, &end, 0);			if (*end != '\0' || end == optarg)				exit_error(PARAMETER_PROBLEM, "Bad OWNER GID value `%s'", optarg);		}		if (invert)			ownerinfo->invert |= IP6T_OWNER_GID;		ownerinfo->match |= IP6T_OWNER_GID;		*flags = 1;		break;	case '3':		if (check_inverse(optarg, &invert))			optind++;		ownerinfo->pid = strtoul(optarg, &end, 0);		if (*end != '\0' || end == optarg)			exit_error(PARAMETER_PROBLEM, "Bad OWNER PID value `%s'", optarg);		if (invert)			ownerinfo->invert |= IP6T_OWNER_PID;		ownerinfo->match |= IP6T_OWNER_PID;		*flags = 1;		break;	case '4':		if (check_inverse(optarg, &invert))			optind++;		ownerinfo->sid = strtoul(optarg, &end, 0);		if (*end != '\0' || end == optarg)			exit_error(PARAMETER_PROBLEM, "Bad OWNER SID value `%s'", optarg);		if (invert)			ownerinfo->invert |= IP6T_OWNER_SID;		ownerinfo->match |= IP6T_OWNER_SID;		*flags = 1;		break;	default:		return 0;	}	return 1;}