Re: [PATCHv3 6/9] receive-pack: Prepare for addition of the new 'limit-*' family of capabilities
On Monday 16 May 2011, Junio C Hamano wrote:
Show 26 quoted lines
> Johan Herland <johan@herland.net> writes:
> > +const char *server_supports(const char *feature)
> >
> > {
> >
> > - return server_capabilities &&
> > - strstr(server_capabilities, feature) != NULL;
> > + if (server_capabilities)
> > + return strstr(server_capabilities, feature);
> > + return NULL;
> >
> > }
>
> I've been meaning to fix this part, but currently the feature set is
> given as space separated list " featurea featureb featurec" and we check
> with a token without any space around, e.g. "if
> (server_supports("no-done"))", which is quite broken.
>
> We should tighten this strstr() to make sure we are not matching in the
> middle of a string, and the need to do so is even greater now that you
> are going to introduce "foo=<value>" and the value could even be strings
> in the future.
>
> How about implementing rules like these:
>
> [...]Agreed. I'll take a stab at this in the re-roll.
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net