aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2011-05-11 22:52:26 -0400
committerNick Mathewson <nickm@torproject.org>2011-05-11 22:52:26 -0400
commit8057b7363ecb3fdc6dcd41d8f975bb50ef1bf6ea (patch)
tree27cc90f1ccaa6e60789cd13eaff0022cd5a890bf
parent7206d784dc3def970d5bd8618242f7b9c9c71e37 (diff)
parentd1c7f65a8e76b594c63bf23baf7fb6c19ba44c00 (diff)
downloadtor-8057b7363ecb3fdc6dcd41d8f975bb50ef1bf6ea.tar
tor-8057b7363ecb3fdc6dcd41d8f975bb50ef1bf6ea.tar.gz
Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2
-rw-r--r--changes/bug31356
-rw-r--r--src/or/config.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/changes/bug3135 b/changes/bug3135
new file mode 100644
index 000000000..d76112348
--- /dev/null
+++ b/changes/bug3135
@@ -0,0 +1,6 @@
+ o Minor bugfixes
+ - Do not crash when our configuration file becomes unreadable
+ (usually due to a permissions change) between when we start
+ up and when a controller calls SAVECONF. Fixes bug 3135;
+ bugfix on 0.0.9pre6.
+
diff --git a/src/or/config.c b/src/or/config.c
index 34208e85b..9f94ef1af 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -4646,7 +4646,7 @@ write_configuration_file(const char *fname, or_options_t *options)
switch (file_status(fname)) {
case FN_FILE:
old_val = read_file_to_str(fname, 0, NULL);
- if (strcmpstart(old_val, GENERATED_FILE_PREFIX)) {
+ if (!old_val || strcmpstart(old_val, GENERATED_FILE_PREFIX)) {
rename_old = 1;
}
tor_free(old_val);