clear_on_drop 0.1.0

Helpers for clearing sensitive data on the stack and heap
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
#if defined(__GNUC__) && __GNUC__ >= 4
#if !defined(_WIN32) && !defined(__CYGWIN__)
__attribute__ ((visibility ("hidden")))
#endif
#endif
void *clear_on_drop_hide(void *ptr) {
    #if defined(__GNUC__)
    /* Not needed with MSVC, since Rust uses LLVM and LTO can't inline this. */
    __asm__ volatile ("" : "=r" (ptr) : "0" (ptr) : "memory");
    #endif
    return ptr;
}