diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-09-18 14:43:57 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-09-18 14:43:57 -0400 |
commit | 7ace8d5a61f75fb77e3619deed417edd5610a4f1 (patch) | |
tree | 10eaf79b0eb6e568491afc7ea5c7c35fa6a633c6 /src/core/proto | |
parent | 620108ea7770608de72dcbea4ca73d6fb99c1109 (diff) | |
download | tor-7ace8d5a61f75fb77e3619deed417edd5610a4f1.tar.gz tor-7ace8d5a61f75fb77e3619deed417edd5610a4f1.zip |
Assert that some trunnel _new() functions return non-NULL
The trunnel functions are written under the assumption that their
allocators can fail, so GCC LTO thinks they might return NULL. In
point of fact, they're using tor_malloc() and friends, which can't
fail, but GCC won't necessarily figure that out.
Fixes part of #27772.
Diffstat (limited to 'src/core/proto')
-rw-r--r-- | src/core/proto/proto_socks.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/proto/proto_socks.c b/src/core/proto/proto_socks.c index ccf96f7814..e2f233ad05 100644 --- a/src/core/proto/proto_socks.c +++ b/src/core/proto/proto_socks.c @@ -353,6 +353,7 @@ process_socks5_methods_request(socks_request_t *req, int have_user_pass, { socks_result_t res = SOCKS_RESULT_DONE; socks5_server_method_t *trunnel_resp = socks5_server_method_new(); + tor_assert(trunnel_resp); socks5_server_method_set_version(trunnel_resp, SOCKS_VER_5); @@ -478,6 +479,7 @@ process_socks5_userpass_auth(socks_request_t *req) socks_result_t res = SOCKS_RESULT_DONE; socks5_server_userpass_auth_t *trunnel_resp = socks5_server_userpass_auth_new(); + tor_assert(trunnel_resp); if (req->socks_version != SOCKS_VER_5) { res = SOCKS_RESULT_INVALID; @@ -869,6 +871,7 @@ socks_request_set_socks5_error(socks_request_t *req, socks5_reply_status_t reason) { socks5_server_reply_t *trunnel_resp = socks5_server_reply_new(); + tor_assert(trunnel_resp); socks5_server_reply_set_version(trunnel_resp, SOCKS_VER_5); socks5_server_reply_set_reply(trunnel_resp, reason); |