diff options
author | Nick Mathewson <nickm@torproject.org> | 2013-02-11 17:01:02 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-02-11 17:01:02 -0500 |
commit | 99457ee7763a2a93cdbaa611a3243e2eb715db65 (patch) | |
tree | 6c1a3b1ba32a0faae0a7154b1a8056409bdcd8d7 /src/or | |
parent | f3835bcb37b56478adab7bee312cda2344190b38 (diff) | |
download | tor-99457ee7763a2a93cdbaa611a3243e2eb715db65.tar.gz tor-99457ee7763a2a93cdbaa611a3243e2eb715db65.zip |
Fix two more coverity-spotted leaks in master.
One is a probably-impossible leak if we fail to sign a consensus;
another occurs when we can't look up the user we're trying to chown
our sockets to.
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/connection.c | 1 | ||||
-rw-r--r-- | src/or/dirvote.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/or/connection.c b/src/or/connection.c index 7b0f081fde..737da72923 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -1068,6 +1068,7 @@ connection_listener_new(const struct sockaddr *listensockaddr, log_warn(LD_NET,"Unable to chown() %s socket: user %s not found.", address, options->User); tor_close_socket(s); + goto err; } else if (chown(address, pw->pw_uid, pw->pw_gid) < 0) { log_warn(LD_NET,"Unable to chown() %s socket: %s.", address, strerror(errno)); diff --git a/src/or/dirvote.c b/src/or/dirvote.c index 66dc50debe..358708b6c5 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -2121,7 +2121,7 @@ networkstatus_compute_consensus(smartlist_t *votes, digest, digest_len, signing_key)) { log_warn(LD_BUG, "Couldn't sign consensus networkstatus."); - return NULL; /* This leaks, but it should never happen. */ + goto done; } smartlist_add(chunks, tor_strdup(sigbuf)); |