From: Szabolcs Nagy Date: Sat, 5 Apr 2014 23:37:24 +0000 (+0200) Subject: printf oob regression test X-Git-Url: http://nsz.repo.hu/git/?p=libc-test;a=commitdiff_plain;h=b89d984cca6c09e60c1941b746162903d81bb323;ds=sidebyside printf oob regression test --- diff --git a/src/regression/printf-1e9-oob.c b/src/regression/printf-1e9-oob.c new file mode 100644 index 0000000..3d7dccf --- /dev/null +++ b/src/regression/printf-1e9-oob.c @@ -0,0 +1,22 @@ +#include +#include +#include "test.h" + +static void t(const char *fmt, double d, const char *want) +{ + char buf[256]; + int n = strlen(want); + int r = snprintf(buf, sizeof buf, fmt, d); + if (r != n || memcmp(buf, want, n+1) != 0) + t_error("snprintf(\"%s\",%f) want %s got %s\n", fmt, d, want, buf); +} + +int main() +{ + // fill stack with something + t("%.1f", 123123123123123.0, "123123123123123.0"); + // test for out-of-bounds access + t("%g", 999999999.0, "1e+09"); + t("%.3e", 999999999.75, "1.000e+09"); + return t_status; +}