diff options
author | Roger Dingledine <arma@torproject.org> | 2004-09-28 22:38:21 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2004-09-28 22:38:21 +0000 |
commit | 4b3001a08c84edfb1e5c7f739fc3dafca032a9f7 (patch) | |
tree | 5f91e840dfc762b35f5cf08b18c4db1c619fe135 | |
parent | 7eff786e4b4d81c35f5e9ea421a0203d9c3fa723 (diff) | |
download | tor-4b3001a08c84edfb1e5c7f739fc3dafca032a9f7.tar tor-4b3001a08c84edfb1e5c7f739fc3dafca032a9f7.tar.gz |
fix some local buffer overflows
fix a memory leak
svn:r2391
-rw-r--r-- | src/or/dirserv.c | 4 | ||||
-rw-r--r-- | src/or/routerlist.c | 9 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 6dddfe615..55c2b9835 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 1198c894f..1eb7cccdf 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; |