diff options
author | Max Kellermann <max@duempel.org> | 2009-03-09 19:11:10 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-03-09 19:11:10 +0100 |
commit | c5c86452ce9e53a8d3c5e6cccf660c5a17636f0a (patch) | |
tree | 3fa538e8019b61f7aed59b8d8672e331e8366420 | |
parent | 940af669b3a703145185c947e31d1d3374bc66da (diff) | |
download | mpd-c5c86452ce9e53a8d3c5e6cccf660c5a17636f0a.tar.gz mpd-c5c86452ce9e53a8d3c5e6cccf660c5a17636f0a.tar.xz mpd-c5c86452ce9e53a8d3c5e6cccf660c5a17636f0a.zip |
music_buffer: poison unallocated chunks
When a music chunk is freed (returned to the buffer), poison its
memory.
-rw-r--r-- | src/buffer.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/buffer.c b/src/buffer.c index 1b300887f..cb2375ace 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -18,6 +18,7 @@ #include "buffer.h" #include "chunk.h" +#include "poison.h" #include <glib.h> @@ -51,10 +52,12 @@ music_buffer_new(unsigned num_chunks) buffer->num_chunks = num_chunks; chunk = buffer->available = buffer->chunks; + poison_undefined(chunk, sizeof(*chunk)); for (unsigned i = 1; i < num_chunks; ++i) { chunk->next = &buffer->chunks[i]; chunk = chunk->next; + poison_undefined(chunk, sizeof(*chunk)); } chunk->next = NULL; @@ -116,6 +119,8 @@ music_buffer_return(struct music_buffer *buffer, struct music_chunk *chunk) g_mutex_lock(buffer->mutex); music_chunk_free(chunk); + poison_undefined(chunk, sizeof(*chunk)); + chunk->next = buffer->available; buffer->available = chunk; |