]> granicus.if.org Git - strace/commitdiff
2005-07-04 Roland McGrath <roland@redhat.com>
authorRoland McGrath <roland@redhat.com>
Mon, 4 Jul 2005 23:28:10 +0000 (23:28 +0000)
committerRoland McGrath <roland@redhat.com>
Mon, 4 Jul 2005 23:28:10 +0000 (23:28 +0000)
* util.c (printnum_int): New function, printnum with s/long/int/.
* defs.h: Declare it.
* net.c (printsockopt): Use it for int-sized option.
Fixes RH#162449.

defs.h
net.c
util.c

diff --git a/defs.h b/defs.h
index 89eaddbea6a8971fb3e11eac3bf8b4ddd9a77512..c3b3050f6ea885a44e2c16bd0e62b03c463e0603 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -437,6 +437,7 @@ extern void dumpiov P((struct tcb *, int, long));
 extern void dumpstr P((struct tcb *, long, int));
 extern void printstr P((struct tcb *, long, int));
 extern void printnum P((struct tcb *, long, char *));
+extern void printnum_int P((struct tcb *, long, char *));
 extern void printpath P((struct tcb *, long));
 extern void printpathn P((struct tcb *, long, int));
 extern void printtv P((struct tcb *, long));
diff --git a/net.c b/net.c
index ab71106da195836193e003cfbba33fd985ed6a0d..1c052547614252981b1474b7989df8f5b2642b4a 100644 (file)
--- a/net.c
+++ b/net.c
@@ -1710,7 +1710,7 @@ int len;
        tprintf (", ");
 
        if (len == sizeof (int)) {
-               printnum(tcp, addr, "%ld");
+               printnum_int (tcp, addr, "%d");
        }
        else {
                printstr (tcp, addr, len);
diff --git a/util.c b/util.c
index d65f42ced7ea9003f9c1cf6d5a6dc228f9b6ac07..395492250a47d761cc2aa2cf810dc25ab99f8b84 100644 (file)
--- a/util.c
+++ b/util.c
@@ -349,6 +349,27 @@ char *fmt;
        tprintf("]");
 }
 
+void
+printnum_int(tcp, addr, fmt)
+struct tcb *tcp;
+long addr;
+char *fmt;
+{
+       int num;
+
+       if (!addr) {
+               tprintf("NULL");
+               return;
+       }
+       if (umove(tcp, addr, &num) < 0) {
+               tprintf("%#lx", addr);
+               return;
+       }
+       tprintf("[");
+       tprintf(fmt, num);
+       tprintf("]");
+}
+
 void
 printuid(text, uid)
 const char *text;