diff options
author | Denys Vlasenko | 2017-07-22 02:25:47 +0200 |
---|---|---|
committer | Denys Vlasenko | 2017-07-22 02:25:47 +0200 |
commit | bbf17bbf326c7157ca237b9659472ddf7626e68d (patch) | |
tree | 95450d50a1931a6b13f941cdf3deb036506148df /scripts/test_setenv_leak.c | |
parent | ef0366eb4f02bb0cda359b977fdbdfa7c145f76f (diff) | |
download | busybox-bbf17bbf326c7157ca237b9659472ddf7626e68d.zip busybox-bbf17bbf326c7157ca237b9659472ddf7626e68d.tar.gz |
crond: do not assume setenv() does not leak
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'scripts/test_setenv_leak.c')
-rw-r--r-- | scripts/test_setenv_leak.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/scripts/test_setenv_leak.c b/scripts/test_setenv_leak.c new file mode 100644 index 0000000..e51722c --- /dev/null +++ b/scripts/test_setenv_leak.c @@ -0,0 +1,18 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +int main(int argc, char **argv) +{ + char buf[256]; + + int i = argv[1] ? atoi(argv[1]) : 999999; + while (--i > 0) { + sprintf(buf, "%d", i); + setenv("VAR", buf, 1); + } + printf("Check size of [heap] mapping:\n"); + freopen("/proc/self/maps", "r", stdin); + while (fgets(buf, sizeof(buf), stdin)) + fputs(buf, stdout); + return 0; +} |