rem: markinfo->mask = ~0;
context: parse(int c, char **argv, int invert, unsigned int *flags,      const struct ipt_entry *entry,      struct ipt_entry_target **target){	struct ipt_connmark_target_info *markinfo		= (struct ipt_connmark_target_info *)(*target)->data;	switch (c) {		char *end;	case '1':		markinfo->mode = IPT_CONNMARK_SET;		markinfo->mask = ~0;		markinfo->mark = strtoul(optarg, &end, 0);		if (*end == '/' && end[1] != '\0')		    markinfo->mask = strtoul(end+1, &end, 0);		if (*end != '\0' || end == optarg)			exit_error(PARAMETER_PROBLEM, "Bad MARK value `%s'", optarg);		if (*flags)			exit_error(PARAMETER_PROBLEM,			           "CONNMARK target: Can't specify --set-mark twice");		*flags = 1;		break;	case '2':		markinfo->mode = IPT_CONNMARK_SAVE;		markinfo->mask = ~0;		if (*flags)			exit_error(PARAMETER_PROBLEM,			           "CONNMARK target: Can't specify --save-mark twice");		*flags = 1;		break;	case '3':		markinfo->mode = IPT_CONNMARK_RESTORE;		markinfo->mask = ~0;		if (*flags)			exit_error(PARAMETER_PROBLEM,			           "CONNMARK target: Can't specify --restore-mark twice");		*flags = 1;		break;	case '4':		if (!*flags)			exit_error(PARAMETER_PROBLEM,			           "CONNMARK target: Can't specify --mask without a operation");		markinfo->mark = strtoul(optarg, &end, 0);		if (*end != '\0' || end == optarg)			exit_error(PARAMETER_PROBLEM, "Bad MARK value `%s'", optarg);		break;	default:		return 0;	}	return 1;}