diff --git a/src/regression/putenv-doublefree.c b/src/regression/putenv-doublefree.c new file mode 100644 index 0000000..f3a1f6c --- /dev/null +++ b/src/regression/putenv-doublefree.c @@ -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 +#include + +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; +}