+void SensitiveCssmAllocator::free(void *addr) throw()
+{
+ memset(addr, 0, malloc_size(addr));
+ DefaultCssmAllocator::free(addr);
+}
+
+void *SensitiveCssmAllocator::realloc(void *addr, size_t newSize) throw(std::bad_alloc)
+{
+ size_t oldSize = malloc_size(addr);
+ if (newSize < oldSize)
+ memset(increment(addr, newSize), 0, oldSize - newSize);
+ return DefaultCssmAllocator::realloc(addr, newSize);
+}
+