diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-10-25 09:15:53 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-10-25 09:16:08 -0400 |
commit | e9ff3e7d4a1be799359db9da40e2bf588075359c (patch) | |
tree | 561b012ac36a49d245a6b6e12dc864a2a899af77 /src/feature | |
parent | c78904b6302c53e0778854974c13aa4d5a499bb0 (diff) | |
parent | 8013e3e8b6af4170f622765a0fb1a219131028bd (diff) | |
download | tor-e9ff3e7d4a1be799359db9da40e2bf588075359c.tar.gz tor-e9ff3e7d4a1be799359db9da40e2bf588075359c.zip |
Merge branch 'bug28202_033' into bug28202_035
Diffstat (limited to 'src/feature')
-rw-r--r-- | src/feature/dirparse/microdesc_parse.c | 6 | ||||
-rw-r--r-- | src/feature/dirparse/parsecommon.c | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/feature/dirparse/microdesc_parse.c b/src/feature/dirparse/microdesc_parse.c index 005d2c53d0..aebff5a35f 100644 --- a/src/feature/dirparse/microdesc_parse.c +++ b/src/feature/dirparse/microdesc_parse.c @@ -50,13 +50,13 @@ find_start_of_next_microdesc(const char *s, const char *eos) return NULL; #define CHECK_LENGTH() STMT_BEGIN \ - if (s+32 > eos) \ + if (eos - s < 32) \ return NULL; \ STMT_END #define NEXT_LINE() STMT_BEGIN \ s = memchr(s, '\n', eos-s); \ - if (!s || s+1 >= eos) \ + if (!s || eos - s <= 1) \ return NULL; \ s++; \ STMT_END @@ -80,7 +80,7 @@ find_start_of_next_microdesc(const char *s, const char *eos) /* Okay, now we're pointed at the first line of the microdescriptor which is not an annotation or onion-key. The next line that _is_ an annotation or onion-key is the start of the next microdescriptor. */ - while (s+32 < eos) { + while (eos - s > 32) { if (*s == '@' || !strcmpstart(s, "onion-key")) return s; NEXT_LINE(); diff --git a/src/feature/dirparse/parsecommon.c b/src/feature/dirparse/parsecommon.c index c12f199e4e..e00af0eea2 100644 --- a/src/feature/dirparse/parsecommon.c +++ b/src/feature/dirparse/parsecommon.c @@ -353,7 +353,7 @@ get_next_token(memarea_t *area, goto check_object; obstart = *s; /* Set obstart to start of object spec */ - if (*s+16 >= eol || memchr(*s+11,'\0',eol-*s-16) || /* no short lines, */ + if (eol - *s <= 16 || memchr(*s+11,'\0',eol-*s-16) || /* no short lines, */ strcmp_len(eol-5, "-----", 5) || /* nuls or invalid endings */ (eol-*s) > MAX_UNPARSED_OBJECT_SIZE) { /* name too long */ RET_ERR("Malformed object: bad begin line"); |