marmistrz

Untitled

Jul 6th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.16 KB | None | 0 0
  1. #include <errno.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5.  
  6. #include <seccomp.h>
  7.  
  8. #define seccomp_err(fun, ...)                                                  \
  9.     do {                                                                       \
  10.         int ret = fun(__VA_ARGS__);                                            \
  11.         if (ret < 0) {                                                         \
  12.             errno = -ret;                                                      \
  13.             perror(#fun);                                                      \
  14.             exit(1);                                                           \
  15.         }                                                                      \
  16.     } while (0)
  17.  
  18. int main() {
  19.     scmp_filter_ctx ctx = seccomp_init(SCMP_ACT_ALLOW);
  20.  
  21.     if (ctx == NULL) {
  22.         perror("seccomp_init");
  23.         return 1;
  24.     }
  25.  
  26.     seccomp_err(seccomp_rule_add, ctx, SCMP_ACT_KILL, SCMP_SYS(fork), 0);
  27.     seccomp_err(seccomp_load, ctx);
  28.  
  29.     printf("And now we fork...\n");
  30.  
  31.     fork();
  32.     printf("You should not see this because I'm dead.\n");
  33.  
  34.     return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment