summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2004-09-28 22:38:21 +0000
committerRoger Dingledine <arma@torproject.org>2004-09-28 22:38:21 +0000
commit4b3001a08c84edfb1e5c7f739fc3dafca032a9f7 (patch)
tree5f91e840dfc762b35f5cf08b18c4db1c619fe135
parent7eff786e4b4d81c35f5e9ea421a0203d9c3fa723 (diff)
downloadtor-4b3001a08c84edfb1e5c7f739fc3dafca032a9f7.tar.gz
tor-4b3001a08c84edfb1e5c7f739fc3dafca032a9f7.zip
fix some local buffer overflows
fix a memory leak svn:r2391
-rw-r--r--src/or/dirserv.c4
-rw-r--r--src/or/routerlist.c9
2 files changed, 8 insertions, 5 deletions
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 6dddfe6153..55c2b9835b 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -677,7 +677,7 @@ void dirserv_set_cached_directory(const char *directory, time_t when)
}
cached_directory_published = when;
if(get_data_directory(&options)) {
- sprintf(filename,"%s/cached-directory", get_data_directory(&options));
+ snprintf(filename,sizeof(filename),"%s/cached-directory", get_data_directory(&options));
if(write_str_to_file(filename,cached_directory,0) < 0) {
log_fn(LOG_WARN, "Couldn't write cached directory to disk. Ignoring.");
}
@@ -751,7 +751,7 @@ static int dirserv_regenerate_directory(void)
}
free(new_directory);
if(get_data_directory(&options)) {
- sprintf(filename,"%s/cached-directory", get_data_directory(&options));
+ snprintf(filename,sizeof(filename),"%s/cached-directory", get_data_directory(&options));
if(write_str_to_file(filename,the_directory,0) < 0) {
log_fn(LOG_WARN, "Couldn't write cached directory to disk. Ignoring.");
}
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 1198c894f9..1eb7cccdf3 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -49,23 +49,26 @@ int router_reload_router_list(void)
char filename[512];
routerlist_clear_trusted_directories();
if (options.RouterFile) {
+ log_fn(LOG_INFO, "Loading router list from %s", options.RouterFile);
if (router_load_routerlist_from_file(options.RouterFile, 1) < 0) {
- log_fn(LOG_ERR,"Error loading router list.");
+ log_fn(LOG_ERR,"Error loading router list '%s'.", options.RouterFile);
return -1;
}
} else {
+ log_fn(LOG_INFO, "Loading internal default router list.");
if (config_assign_default_dirservers() < 0)
return -1;
}
if (get_data_directory(&options)) {
char *s;
- sprintf(filename,"%s/cached-directory", get_data_directory(&options));
+ snprintf(filename,sizeof(filename),"%s/cached-directory", get_data_directory(&options));
s = read_file_to_str(filename,0);
if (s) {
log_fn(LOG_INFO, "Loading cached directory from %s", filename);
if (router_load_routerlist_from_string(s, 0) < 0) {
- log_fn(LOG_WARN, "Cached directory was unparseable; ignoring.");
+ log_fn(LOG_WARN, "Cached directory '%s' was unparseable; ignoring.", filename);
}
+ tor_free(s);
}
}
return 0;