From 48ad03ca0c5f078b8d12a64323fd93b3858041af Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 31 Jan 2014 16:56:01 +0000 Subject: lib: Capture errno on entry When printing the errno, it is important that we capture the user errno before we make any library calls - as they may alter the value. References: https://bugs.freedesktop.org/show_bug.cgi?id=74007 Signed-off-by: Chris Wilson --- lib/drmtest.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib/drmtest.c') diff --git a/lib/drmtest.c b/lib/drmtest.c index 8bc70a35..f7262d7b 100644 --- a/lib/drmtest.c +++ b/lib/drmtest.c @@ -1038,6 +1038,7 @@ void __igt_skip_check(const char *file, const int line, const char *f, ...) { va_list args; + int err = errno; if (f) { static char *buf; @@ -1053,12 +1054,12 @@ void __igt_skip_check(const char *file, const int line, igt_skip("Test requirement not met in function %s, file %s:%i:\n" "Last errno: %i, %s\n" "Test requirement: (%s)\n%s", - func, file, line, errno, strerror(errno), check, buf); + func, file, line, err, strerror(err), check, buf); } else { igt_skip("Test requirement not met in function %s, file %s:%i:\n" "Last errno: %i, %s\n" "Test requirement: (%s)\n", - func, file, line, errno, strerror(errno), check); + func, file, line, err, strerror(err), check); } } @@ -1110,11 +1111,12 @@ void __igt_fail_assert(int exitcode, const char *file, const char *f, ...) { va_list args; + int err = errno; printf("Test assertion failure function %s, file %s:%i:\n" "Last errno: %i, %s\n" "Failed assertion: %s\n", - func, file, line, errno, strerror(errno), assertion); + func, file, line, err, strerror(err), assertion); if (f) { va_start(args, f); -- cgit v1.2.3