From: Chris Wilson Date: Fri, 31 Jan 2014 16:56:01 +0000 (+0000) Subject: lib: Capture errno on entry X-Git-Tag: intel-gpu-tools-1.6~144 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=48ad03ca0c5f078b8d12a64323fd93b3858041af;p=platform%2Fupstream%2Fintel-gpu-tools.git 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 --- diff --git a/lib/drmtest.c b/lib/drmtest.c index 8bc70a3..f7262d7 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);