bgpd: fix aspath parsing

clang provides a notice about it that this p++ is useless,
because ++ would be done after the return.

From code review, I understand that p shall be incremented
for each token that is parsed from the buf. So let's keep
this intent.

Note that this commit is changing the behaviour of the source
code since from now p++ will be returned instead of p.
However, it does not hurt since the only consumer
just free() the aspath if it is parsed as as_token_unknown.
Let's be safe with a proper execution flow from now.

PS:
C reminders:

int f7(void) {
  int j = 7;

  return ++j; // return 8
}

int f8(void) {
  int j = 7;

  return j++; // return 7
}

Signed-off-by: Vincent Jardin <vincent.jardin@6wind.com>
This commit is contained in:
Vincent JARDIN 2017-10-09 09:43:26 +02:00
parent e4002056b8
commit b42d80dd9a

View File

@ -1914,7 +1914,8 @@ static const char *aspath_gettoken(const char *buf, enum as_token *token,
/* There is no match then return unknown token. */
*token = as_token_unknown;
return p++;
p++;
return p;
}
struct aspath *aspath_str2aspath(const char *str)