File tree 1 file changed +5
-4
lines changed
1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -35,11 +35,12 @@ template <typename T> class SecureAllocator {
35
35
* Release memory which was allocated for N items at pointer P.
36
36
*
37
37
* The memory block is filled with zeroes before being released.
38
- * The pointer argument is tagged as "volatile" to prevent the
39
- * compiler optimizing out this critical step.
38
+ * The pointer argument passed to memset is tagged as "volatile" to prevent
39
+ * the compiler optimizing out this critical step.
40
40
*/
41
- void deallocate (volatile pointer p, size_type n) {
42
- std::memset (p, 0 , n * sizeof (T));
41
+ void deallocate (pointer p, size_type n) {
42
+ volatile pointer do_not_optimize_memset_p = p;
43
+ std::memset (do_not_optimize_memset_p, 0 , n * sizeof (T));
43
44
// free using "global operator delete"
44
45
::operator delete (p);
45
46
}
You can’t perform that action at this time.
0 commit comments