summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/utils/buffer.c24
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;
+}
+