Stefan Beller <[email protected]> writes:
> +attr;;
> +After `attr:` comes a space separated list of "attribute
> +...
> ++
The text looks OK, but does it format well?
> + attr_len = strcspn(attr, "=");
Scanning for '=' here retains the same bug from the previous
iteration where you take !VAR=VAL and silently ignore =VAL part
without diagnosing the error, doesn't it?
Perhaps strlen(attr) here, and...
> + switch (*attr) {
> + case '!':
> + am->match_mode = MATCH_UNSPECIFIED;
> + attr++;
> + attr_len--;
> + break;
> + case '-':
> + am->match_mode = MATCH_UNSET;
> + attr++;
> + attr_len--;
> + break;
> + default:
> + if (attr[attr_len] != '=')
> + am->match_mode = MATCH_SET;
> + else {
> + am->match_mode = MATCH_VALUE;
> + am->value = xstrdup(&attr[attr_len + 1]);
> + if (strchr(am->value, '\\'))
> + die(_("attr spec values must not
> contain backslashes"));
> + }
> + break;
> + }
... doing strcspn() only in default: part would be a quick fix.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html