]> granicus.if.org Git - strace/commitdiff
Export print_seccomp_fprog for further use in parser of ptrace syscall
authorDmitry V. Levin <ldv@altlinux.org>
Thu, 12 May 2016 14:23:50 +0000 (14:23 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 12 May 2016 14:35:02 +0000 (14:35 +0000)
* defs.h (print_seccomp_fprog): New prototype.
* seccomp.c (print_seccomp_fprog): Remove "static" keyword.
Move printing of struct seccomp_fprog fields ...
(print_seccomp_filter): ... here.

defs.h
seccomp.c

diff --git a/defs.h b/defs.h
index a5aff96a0dcb03fc8a2e7a6c7b5ecf0cd255363f..a3b1ddaa0e33d08bf373399f2dd85719d64e3f8c 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -652,7 +652,8 @@ extern void tprint_iov(struct tcb *, unsigned long, unsigned long, int decode_io
 extern void tprint_iov_upto(struct tcb *, unsigned long, unsigned long, int decode_iov, unsigned long);
 extern void tprint_open_modes(unsigned int);
 extern const char *sprint_open_modes(unsigned int);
-extern void print_seccomp_filter(struct tcb *tcp, unsigned long);
+extern void print_seccomp_filter(struct tcb *, unsigned long);
+extern void print_seccomp_fprog(struct tcb *, unsigned long, unsigned short);
 
 struct strace_statfs;
 extern void print_struct_statfs(struct tcb *tcp, long);
index 5d972f97f858d4f22ab4c8b4c76051ddeda38ce8..4d8d7e4b2503383cf0024c12548cb264e52d4e36 100644 (file)
--- a/seccomp.c
+++ b/seccomp.c
@@ -171,11 +171,9 @@ print_bpf_filter(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
        return true;
 }
 
-static void
+void
 print_seccomp_fprog(struct tcb *tcp, unsigned long addr, unsigned short len)
 {
-       tprintf("{len=%u, filter=", len);
-
        if (abbrev(tcp)) {
                printaddr(addr);
        } else {
@@ -185,8 +183,6 @@ print_seccomp_fprog(struct tcb *tcp, unsigned long addr, unsigned short len)
                print_array(tcp, addr, len, &filter, sizeof(filter),
                            umoven_or_printaddr, print_bpf_filter, &insns);
        }
-
-       tprints("}");
 }
 
 #include "seccomp_fprog.h"
@@ -196,8 +192,11 @@ print_seccomp_filter(struct tcb *tcp, unsigned long addr)
 {
        struct seccomp_fprog fprog;
 
-       if (fetch_seccomp_fprog(tcp, addr, &fprog))
+       if (fetch_seccomp_fprog(tcp, addr, &fprog)) {
+               tprintf("{len=%hu, filter=", fprog.len);
                print_seccomp_fprog(tcp, fprog.filter, fprog.len);
+               tprints("}");
+       }
 }
 
 static void