summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/malloc/realloc-can-shrink.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/malloc/realloc-can-shrink.c b/test/malloc/realloc-can-shrink.c
new file mode 100644
index 000000000..7df9835e9
--- /dev/null
+++ b/test/malloc/realloc-can-shrink.c
@@ -0,0 +1,17 @@
+/* make sure that realloc() can properly shrink buffers */
+
+#include <stdlib.h>
+
+#define LARGE_BUFFER (1 << 20) /* idea is to span a lot of pages */
+
+int main()
+{
+ int count = 20;
+ char *ptr = NULL;
+ while (count--) {
+ ptr = realloc(ptr, LARGE_BUFFER);
+ ptr = realloc(ptr, 1);
+ }
+ free(ptr);
+ return 0;
+}