We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 5f4e104 commit 30170d6Copy full SHA for 30170d6
include/json/allocator.h
@@ -35,11 +35,10 @@ template <typename T> class SecureAllocator {
35
* Release memory which was allocated for N items at pointer P.
36
*
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.
40
*/
41
- void deallocate(volatile pointer p, size_type n) {
42
- std::memset(p, 0, n * sizeof(T));
+ void deallocate(pointer p, size_type n) {
+ // memset_s is used because memset may be optimized away by the compiler
+ memset_s(p, n * sizeof(T), 0, n * sizeof(T));
43
// free using "global operator delete"
44
::operator delete(p);
45
}
0 commit comments