Handle unexpected whitespace better in malformed descriptors. Bug

found using Benedikt Boss's new Tor fuzzer! Bugfix on 0.2.0.x.


svn:r11229
This commit is contained in:
Roger Dingledine 2007-08-20 20:05:56 +00:00
parent 4ff3343e98
commit 05f12bffe9
2 changed files with 8 additions and 4 deletions

View File

@ -1,4 +1,8 @@
Changes in version 0.2.0.6-alpha - 2007-??-?? Changes in version 0.2.0.6-alpha - 2007-??-??
o Major bugfixes:
- Handle unexpected whitespace better in malformed descriptors. Bug
found using Benedikt Boss's new Tor fuzzer! Bugfix on 0.2.0.x.
o Minor bugfixes (bridges): o Minor bugfixes (bridges):
- Do not intermix bridge routers with controller-added routers. (Bugfix - Do not intermix bridge routers with controller-added routers. (Bugfix
on 0.2.0.x) on 0.2.0.x)

View File

@ -534,12 +534,12 @@ eat_whitespace_eos(const char *s, const char *eos)
return s; return s;
} }
/** Return a pointer to the first char of s that is not a space or a tab, /** Return a pointer to the first char of s that is not a space or a tab
* or to the terminating NUL if no such character exists. */ * or a \\r, or to the terminating NUL if no such character exists. */
const char * const char *
eat_whitespace_no_nl(const char *s) eat_whitespace_no_nl(const char *s)
{ {
while (*s == ' ' || *s == '\t') while (*s == ' ' || *s == '\t' || *s == '\r')
++s; ++s;
return s; return s;
} }
@ -549,7 +549,7 @@ eat_whitespace_no_nl(const char *s)
const char * const char *
eat_whitespace_eos_no_nl(const char *s, const char *eos) eat_whitespace_eos_no_nl(const char *s, const char *eos)
{ {
while (s < eos && (*s == ' ' || *s == '\t')) while (s < eos && (*s == ' ' || *s == '\t' || *s == '\r'))
++s; ++s;
return s; return s;
} }