diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2008-08-13 11:09:37 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2008-08-13 11:09:37 +0000 |
commit | ecf6e517b5f65397507697c28c29981507a052ab (patch) | |
tree | 0bb96ba235be56cee7ce5351478e7679db92e56d /src | |
parent | 78e86666d3da1a9fd904e8bfc6b8ead22a1520ec (diff) | |
download | libparserutils-ecf6e517b5f65397507697c28c29981507a052ab.tar.gz libparserutils-ecf6e517b5f65397507697c28c29981507a052ab.tar.bz2 |
Move the location of the utf8 buffer every time we're asked for a character in debug mode.
This leaks memory lots, deliberately.
svn path=/trunk/libparserutils/; revision=5081
Diffstat (limited to 'src')
-rw-r--r-- | src/utils/buffer.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/utils/buffer.c b/src/utils/buffer.c index 21c47fc..3c28e16 100644 --- a/src/utils/buffer.c +++ b/src/utils/buffer.c @@ -154,3 +154,27 @@ parserutils_error parserutils_buffer_grow(parserutils_buffer *buffer) return PARSERUTILS_OK; } +parserutils_error parserutils_buffer_randomise(parserutils_buffer *buffer) +{ + if (buffer == NULL) + return PARSERUTILS_BADPARM; + +#ifndef NDEBUG + uint8_t *temp = buffer->alloc(NULL, buffer->allocated, buffer->pw); + if (temp == NULL) + return PARSERUTILS_NOMEM; + + memcpy(temp, buffer->data, buffer->length); + + memset(buffer->data, 0xff, buffer->length); + + /* Leak the buffer's current data, so we don't reuse it */ + /* buffer->alloc(buffer->data, 0, buffer->pw); */ + + buffer->data = temp; +#endif + + + return PARSERUTILS_OK; +} + |