]> granicus.if.org Git - strace/blobdiff - seccomp.c
Robustify mpers.awk against invalid input
[strace] / seccomp.c
index 71c90c0deeeb8c4edd27636f3ae4729c455c4a9e..71cda7d654334ee2cb4ab449aeac00137cec5731 100644 (file)
--- a/seccomp.c
+++ b/seccomp.c
@@ -190,30 +190,15 @@ decode_fprog(struct tcb *tcp, unsigned short len, unsigned long addr)
        }
 }
 
+#include "seccomp_fprog.h"
+
 void
 print_seccomp_filter(struct tcb *tcp, unsigned long addr)
 {
-#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
-       if (current_wordsize == 4) {
-               struct {
-                       unsigned short len;
-                       uint32_t filter;
-               } fprog;
-
-               if (!umove_or_printaddr(tcp, addr, &fprog))
-                       decode_fprog(tcp, fprog.len, fprog.filter);
-       } else {
-#endif
-               struct {
-                       unsigned short len;
-                       unsigned long filter;
-               } fprog;
-
-               if (!umove_or_printaddr(tcp, addr, &fprog))
-                       decode_fprog(tcp, fprog.len, fprog.filter);
-#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
-       }
-#endif
+       struct seccomp_fprog fprog;
+
+       if (fetch_seccomp_fprog(tcp, addr, &fprog))
+               decode_fprog(tcp, fprog.len, fprog.filter);
 }
 
 static void