diff options
author | Nick Mathewson <nickm@torproject.org> | 2012-11-07 16:09:58 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2012-11-08 16:44:50 -0500 |
commit | 49dd5ef3a3d1775fdc3c0a7d069d3097b3baeeec (patch) | |
tree | 7189ed200ae8f47bf7d3399d0b99243dc93bced3 /src/or/buffers.c | |
parent | 758428dd32128874cefacc92ef63c1b5bc9a656e (diff) | |
download | tor-49dd5ef3a3d1775fdc3c0a7d069d3097b3baeeec.tar.gz tor-49dd5ef3a3d1775fdc3c0a7d069d3097b3baeeec.zip |
Add and use and unlikely-to-be-eliminated memwipe()
Apparently some compilers like to eliminate memset() operations on
data that's about to go out-of-scope. I've gone with the safest
possible replacement, which might be a bit slow. I don't think this
is critical path in any way that will affect performance, but if it
is, we can work on that in 0.2.4.
Fixes bug 7352.
Diffstat (limited to 'src/or/buffers.c')
-rw-r--r-- | src/or/buffers.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/or/buffers.c b/src/or/buffers.c index 9acc22971a..ad5ab83e4f 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -1546,14 +1546,14 @@ socks_request_free(socks_request_t *req) if (!req) return; if (req->username) { - memset(req->username, 0x10, req->usernamelen); + memwipe(req->username, 0x10, req->usernamelen); tor_free(req->username); } if (req->password) { - memset(req->password, 0x04, req->passwordlen); + memwipe(req->password, 0x04, req->passwordlen); tor_free(req->password); } - memset(req, 0xCC, sizeof(socks_request_t)); + memwipe(req, 0xCC, sizeof(socks_request_t)); tor_free(req); } |