add putenv double-free regression test
authorAlexander Monakov <amonakov@ispras.ru>
Sun, 6 Mar 2016 19:41:14 +0000 (22:41 +0300)
committerSzabolcs Nagy <nsz@port70.net>
Sun, 6 Mar 2016 21:10:48 +0000 (21:10 +0000)
src/regression/putenv-doublefree.c [new file with mode: 0644]

diff --git a/src/regression/putenv-doublefree.c b/src/regression/putenv-doublefree.c
new file mode 100644 (file)
index 0000000..f3a1f6c
--- /dev/null
@@ -0,0 +1,16 @@
+// commit 9543656cc32fda48fc463f332ee20e91eed2b768 2016-03-06
+// __putenv could be confused into freeing storage that does not belong to the implementation
+#define _GNU_SOURCE
+#include <stdlib.h>
+#include <string.h>
+
+int main(void)
+{
+       setenv("A", "1", 1);
+       setenv("A", "2", 1);
+       char *c = strdup("A=3");
+       putenv(c);
+       setenv("A", "4", 1);
+       free(c);
+       return 0;
+}