summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2009-08-12 22:02:07 -0400
committerNick Mathewson <nickm@torproject.org>2009-08-12 22:02:07 -0400
commite0dc2e907eb029bd4e3d7933ef72f3ff942a9b81 (patch)
tree872cf6e543fbc1b40ac7c4724daa4b189c3945d3
parentafc9da72874b0e443843ef25090a97fab91530ec (diff)
parenta98643c1b5a39764204fcf6835a8b2bee670581d (diff)
downloadtor-e0dc2e907eb029bd4e3d7933ef72f3ff942a9b81.tar.gz
tor-e0dc2e907eb029bd4e3d7933ef72f3ff942a9b81.zip
Merge commit 'origin/maint-0.2.1'
-rw-r--r--ChangeLog2
-rw-r--r--src/or/dirserv.c7
-rw-r--r--src/or/router.c2
3 files changed, 7 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a5cee13c4f..ac7beb79ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -67,6 +67,8 @@ Changes in version 0.2.1.20 - 2009-??-??
o Minor bugfixes:
- Fix a signed/unsigned compile warning in 0.2.1.19.
+ - Fix possible segmentation fault on directory authorities. Bugfix on
+ 0.2.1.14-rc.
Changes in version 0.2.1.19 - 2009-07-28
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index acce309641..a731e334c8 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -652,8 +652,8 @@ dirserv_add_multiple_descriptors(const char *desc, uint8_t purpose,
/** Examine the parsed server descriptor in <b>ri</b> and maybe insert it into
* the list of server descriptors. Set *<b>msg</b> to a message that should be
- * passed back to the origin of this descriptor. Use <b>source</b> to produce
- * better log messages.
+ * passed back to the origin of this descriptor, or NULL if there is no such
+ * message. Use <b>source</b> to produce better log messages.
*
* Return the status of the operation
*
@@ -667,6 +667,7 @@ dirserv_add_descriptor(routerinfo_t *ri, const char **msg, const char *source)
routerinfo_t *ri_old;
char *desc, *nickname;
size_t desclen = 0;
+ *msg = NULL;
/* If it's too big, refuse it now. Otherwise we'll cache it all over the
* network and it'll clog everything up. */
@@ -718,7 +719,7 @@ dirserv_add_descriptor(routerinfo_t *ri, const char **msg, const char *source)
control_event_or_authdir_new_descriptor("REJECTED", desc, desclen, *msg);
log_info(LD_DIRSERV,
"Did not add descriptor from '%s' (source: %s): %s.",
- nickname, source, *msg);
+ nickname, source, *msg ? *msg : "(no message)");
} else {
smartlist_t *changed;
control_event_or_authdir_new_descriptor("ACCEPTED", desc, desclen, *msg);
diff --git a/src/or/router.c b/src/or/router.c
index 82db142057..d5a2576842 100644
--- a/src/or/router.c
+++ b/src/or/router.c
@@ -546,7 +546,7 @@ init_keys(void)
/* Must be called after keys are initialized. */
mydesc = router_get_my_descriptor();
if (authdir_mode(options)) {
- const char *m;
+ const char *m = NULL;
routerinfo_t *ri;
/* We need to add our own fingerprint so it gets recognized. */
if (dirserv_add_own_fingerprint(options->Nickname, get_identity_key())) {