]> granicus.if.org Git - strace/commitdiff
poll.c: use xs*printf instead of sprintf
authorDmitry V. Levin <ldv@altlinux.org>
Sat, 6 Jan 2018 01:45:16 +0000 (01:45 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 7 Jan 2018 00:05:42 +0000 (00:05 +0000)
* poll.c: Include "xstring.h".
(decode_poll_exiting): Replace sprintf with xsnprintf and xsprintf.

poll.c

diff --git a/poll.c b/poll.c
index e3b497caa1dcfec4cc62780dbe2f4ee803d28134..a937e0dabdf8b86e4424ff8c840c48540f2d91a8 100644 (file)
--- a/poll.c
+++ b/poll.c
@@ -29,6 +29,7 @@
 
 #include "defs.h"
 #include <poll.h>
+#include "xstring.h"
 
 #include "xlat/pollflags.h"
 
@@ -96,7 +97,9 @@ decode_poll_exiting(struct tcb *const tcp, const kernel_ulong_t pts)
                                *outptr++ = '[';
                        else
                                outptr = stpcpy(outptr, ", ");
-                       outptr += sprintf(outptr, "%#" PRI_klx, cur);
+                       outptr += xsnprintf(outptr,
+                                           sizeof(outstr) - (outptr - outstr),
+                                           "%#" PRI_klx, cur);
                        break;
                }
                if (!fds.revents)
@@ -112,7 +115,7 @@ decode_poll_exiting(struct tcb *const tcp, const kernel_ulong_t pts)
 
                static const char fmt[] = "{fd=%d, revents=";
                char fdstr[sizeof(fmt) + sizeof(int) * 3];
-               sprintf(fdstr, fmt, fds.fd);
+               xsprintf(fdstr, fmt, fds.fd);
 
                const char *flagstr = sprintflags("", pollflags,
                                                  (unsigned short) fds.revents);