summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/mem_clr.c
diff options
context:
space:
mode:
authordjm <>2008-09-06 12:15:56 +0000
committerdjm <>2008-09-06 12:15:56 +0000
commit12867252827c8efaa8ddd1fa3b3d6e321e2bcdef (patch)
treeb7a1f167ae5aeff4cfd8a18b598b68fe98a066fd /src/lib/libcrypto/mem_clr.c
parentf519f07de9bfb123f2b32aa3965e6f73c8364b80 (diff)
parent5a3c0a05c7f2c5d3c584b7c8d6aec836dd724c80 (diff)
downloadopenbsd-12867252827c8efaa8ddd1fa3b3d6e321e2bcdef.tar.gz
openbsd-12867252827c8efaa8ddd1fa3b3d6e321e2bcdef.tar.bz2
openbsd-12867252827c8efaa8ddd1fa3b3d6e321e2bcdef.zip
This commit was generated by cvs2git to track changes on a CVS vendor
branch.
Diffstat (limited to 'src/lib/libcrypto/mem_clr.c')
-rw-r--r--src/lib/libcrypto/mem_clr.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/libcrypto/mem_clr.c b/src/lib/libcrypto/mem_clr.c
index e4b7f540b0..add1f78020 100644
--- a/src/lib/libcrypto/mem_clr.c
+++ b/src/lib/libcrypto/mem_clr.c
@@ -64,12 +64,14 @@ unsigned char cleanse_ctr = 0;
64void OPENSSL_cleanse(void *ptr, size_t len) 64void OPENSSL_cleanse(void *ptr, size_t len)
65 { 65 {
66 unsigned char *p = ptr; 66 unsigned char *p = ptr;
67 size_t loop = len; 67 size_t loop = len, ctr = cleanse_ctr;
68 while(loop--) 68 while(loop--)
69 { 69 {
70 *(p++) = cleanse_ctr; 70 *(p++) = (unsigned char)ctr;
71 cleanse_ctr += (17 + (unsigned char)((int)p & 0xF)); 71 ctr += (17 + ((size_t)p & 0xF));
72 } 72 }
73 if(memchr(ptr, cleanse_ctr, len)) 73 p=memchr(ptr, (unsigned char)ctr, len);
74 cleanse_ctr += 63; 74 if(p)
75 ctr += (63 + (size_t)p);
76 cleanse_ctr = (unsigned char)ctr;
75 } 77 }