summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-05-26 00:07:48 +0000
committerNick Mathewson <nickm@torproject.org>2007-05-26 00:07:48 +0000
commit3419e7446e55f77932eaab350414963e34d7b64c (patch)
tree3d1b2a2a87e751c0144a1ff87c9441f5e6773734
parent20773596d3710a878a353082483090f6412364b4 (diff)
downloadtor-3419e7446e55f77932eaab350414963e34d7b64c.tar.gz
tor-3419e7446e55f77932eaab350414963e34d7b64c.zip
r12986@catbus: nickm | 2007-05-25 20:07:08 -0400
Try even harder not to dereference the first character after an mmap(). [Bug reported by lodger] svn:r10346
-rw-r--r--ChangeLog2
-rw-r--r--src/or/routerparse.c5
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index f6a3db1112..6cea4e7e47 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
Changes in version 0.1.2.15 - 2007-0?-??
o Fixes:
- Fix compile on FreeBSD/NetBSD/OpenBSD. Oops.
+ - Try even harder not to dereference the first character after
+ an mmap(). (Bug reported by lodger)
Changes in version 0.1.2.14 - 2007-05-25
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index 6c77eb688e..9fb33a3a56 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -676,6 +676,11 @@ router_parse_list_from_string(const char **s, const char *eos,
cp = end = eos;
}
+ /* Start by backing up a character. If we were at eos, we'll now point
+ * to a valid character. If we were at a \nrouter or \ndirectory-signature,
+ * we'll back up to before the \n. */
+ --cp;
+
while (cp > *s && (!*cp || TOR_ISSPACE(*cp)))
--cp;
/* cp now points to the last non-space character in this descriptor. */