summaryrefslogtreecommitdiff
path: root/src/or/statefile.c
diff options
context:
space:
mode:
authorteor <teor2345@gmail.com>2014-10-19 17:48:07 +1100
committerteor <teor2345@gmail.com>2014-11-08 20:31:20 +1100
commitfd7e9e9030cee9d8e863cea3f3f90226ae66fdfe (patch)
treea9ca33e658ff76b7a4bf4a7d5f9dd3a4936da575 /src/or/statefile.c
parentce7fd6e160e2e3acb824b29e29afe15cd5e7bf4f (diff)
downloadtor-fd7e9e9030cee9d8e863cea3f3f90226ae66fdfe.tar.gz
tor-fd7e9e9030cee9d8e863cea3f3f90226ae66fdfe.zip
Stop failing when key files are zero-length
Instead, generate new keys, and overwrite the empty key files. Adds FN_EMPTY to file_status_t and file_status. Fixes bug 13111. Related changes due to review of FN_FILE usage: Stop generating a fresh .old RSA key file when the .old file is missing. Avoid overwriting .old key files with empty key files. Skip loading zero-length extra info store, router store, stats, state, and key files.
Diffstat (limited to 'src/or/statefile.c')
-rw-r--r--src/or/statefile.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/or/statefile.c b/src/or/statefile.c
index 2ce53fdfca..6640aed7d0 100644
--- a/src/or/statefile.c
+++ b/src/or/statefile.c
@@ -323,7 +323,10 @@ or_state_load(void)
goto done;
}
break;
+ /* treat empty state files as if the file doesn't exist, and generate
+ * a new state file, overwriting the empty file in or_state_save() */
case FN_NOENT:
+ case FN_EMPTY:
break;
case FN_ERROR:
case FN_DIR: