diff options
author | Nick Mathewson <nickm@torproject.org> | 2008-02-20 16:57:39 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2008-02-20 16:57:39 +0000 |
commit | cefe0a1959bb62fb36170dc3ff8c15b9971bb822 (patch) | |
tree | 2e47bfe6783aefbb687e99c524ab39f3c0f1fe9e /src/or/routerparse.c | |
parent | 1c8bd320beed5379ab3b755d41cb2fd051858a67 (diff) | |
download | tor-cefe0a1959bb62fb36170dc3ff8c15b9971bb822.tar.gz tor-cefe0a1959bb62fb36170dc3ff8c15b9971bb822.zip |
r18255@catbus: nickm | 2008-02-20 11:44:55 -0500
Add asserts and refactor some comparisons in order to fix some veracode-identified issues. Note a bug in buffers.c
svn:r13618
Diffstat (limited to 'src/or/routerparse.c')
-rw-r--r-- | src/or/routerparse.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/or/routerparse.c b/src/or/routerparse.c index 123ea32bc1..2a897f55cc 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -2704,6 +2704,7 @@ get_next_token(const char **s, const char *eos, token_rule_t *table) /* Set *s to first token, eol to end-of-line, next to after first token */ *s = eat_whitespace_eos(*s, eos); /* eat multi-line whitespace */ + tor_assert(eos >= *s); eol = memchr(*s, '\n', eos-*s); if (!eol) eol = eos; @@ -2775,11 +2776,13 @@ get_next_token(const char **s, const char *eos, token_rule_t *table) /* Check whether there's an object present */ *s = eat_whitespace_eos(eol, eos); /* Scan from end of first line */ + tor_assert(eos >= *s); eol = memchr(*s, '\n', eos-*s); if (!eol || eol-*s<11 || strcmpstart(*s, "-----BEGIN ")) /* No object. */ goto check_object; obstart = *s; /* Set obstart to start of object spec */ + tor_assert(eol >= (*s+16)); if (*s+11 >= eol-5 || memchr(*s+11,'\0',eol-*s-16) || /* no short lines, */ strcmp_len(eol-5, "-----", 5)) { /* nuls or invalid endings */ RET_ERR("Malformed object: bad begin line"); @@ -2793,6 +2796,7 @@ get_next_token(const char **s, const char *eos, token_rule_t *table) if (!next) { RET_ERR("Malformed object: missing object end line"); } + tor_assert(eos >= next); eol = memchr(next, '\n', eos-next); if (!eol) /* end-of-line marker, or eos if there's no '\n' */ eol = eos; |