* tests/futex.c (sprintrc): Print the actual return code provided, not
  just "0"; checks for snprintf return code added.
---
 tests/futex.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/tests/futex.c b/tests/futex.c
index 28d9df8..09a6c25 100644
--- a/tests/futex.c
+++ b/tests/futex.c
@@ -150,7 +150,15 @@ const char *sprintrc(long rc)
        if (rc == 0)
                return "0";
 
-       snprintf(buf, sizeof(buf), "-1 %s (%m)", errno2name());
+       int ret = (rc == -1)
+               ? snprintf(buf, sizeof(buf), "-1 %s (%m)", errno2name())
+               : snprintf(buf, sizeof(buf), "%ld", rc);
+
+       if (ret < 0)
+               perror_msg_and_fail("snprintf");
+       if ((size_t) ret >= sizeof(buf))
+               error_msg_and_fail("snprintf overflow: got %d, expected "
+                       "no more than %zu", ret, sizeof(buf));
 
        return buf;
 }
-- 
1.7.10.4


------------------------------------------------------------------------------
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to