X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fmem%2Fmem.c;h=13027a2a7b0fec1b18ae386f9704d84aed41c5f1;hb=870b63169c782ef0cc52687397e5b9a7125a61b0;hp=5eb15070ed3c3f9f5bf8d2dd8b0d0f060ffa1766;hpb=6e5c2f3f55d4e537ccc69703cc41a4295afcd170;p=ccan diff --git a/ccan/mem/mem.c b/ccan/mem/mem.c index 5eb15070..13027a2a 100644 --- a/ccan/mem/mem.c +++ b/ccan/mem/mem.c @@ -107,3 +107,22 @@ bool memeqzero(const void *data, size_t length) /* Now we know that's zero, memcmp with self. */ return memcmp(data, p, length) == 0; } + +void memtaint(void *data, size_t len) +{ + /* Using 16 bytes is a bit quicker than 4 */ + const unsigned tainter[] + = { 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef }; + char *p = data; + + while (len >= sizeof(tainter)) { + memcpy(p, tainter, sizeof(tainter)); + p += sizeof(tainter); + len -= sizeof(tainter); + } + memcpy(p, tainter, len); + +#if HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_UNDEFINED(data, len); +#endif +}