]> granicus.if.org Git - strace/blob - fetch_seccomp_fprog.c
Robustify mpers.awk against invalid input
[strace] / fetch_seccomp_fprog.c
1 #include "defs.h"
2
3 #include DEF_MPERS_TYPE(seccomp_fprog_t)
4
5 #include "seccomp_fprog.h"
6 typedef struct seccomp_fprog seccomp_fprog_t;
7
8 #include MPERS_DEFS
9
10 MPERS_PRINTER_DECL(bool, fetch_seccomp_fprog)(struct tcb *tcp, const long addr, void *p)
11 {
12         struct seccomp_fprog *pfp = p;
13         seccomp_fprog_t mfp;
14
15         if (sizeof(*pfp) == sizeof(mfp))
16                 return !umove_or_printaddr(tcp, addr, pfp);
17
18         if (umove_or_printaddr(tcp, addr, &mfp))
19                 return false;
20
21         pfp->len = mfp.len;
22         pfp->filter = mfp.filter;
23         return true;
24 }