* Seccomp Library test program
*
* Copyright (c) 2012 Red Hat <pmoore@redhat.com>
- * Author: Paul Moore <pmoore@redhat.com>
+ * Author: Paul Moore <paul@paul-moore.com>
*/
/*
{
int rc;
uint32_t val = (uint32_t)(-1);
- scmp_filter_ctx ctx;
+ scmp_filter_ctx ctx = NULL;
+
+ rc = seccomp_api_set(5);
+ if (rc != 0)
+ return EOPNOTSUPP;
ctx = seccomp_init(SCMP_ACT_ALLOW);
if (ctx == NULL)
- goto out;
+ return ENOMEM;
rc = seccomp_attr_get(ctx, SCMP_FLTATR_ACT_DEFAULT, &val);
if (rc != 0)
goto out;
}
+ rc = seccomp_attr_set(ctx, SCMP_FLTATR_CTL_TSYNC, 1);
+ if (rc != 0 && rc != -EOPNOTSUPP)
+ goto out;
+ rc = seccomp_attr_get(ctx, SCMP_FLTATR_CTL_TSYNC, &val);
+ if (rc != 0)
+ goto out;
+ if (val != 1) {
+ rc = -1;
+ goto out;
+ }
+
+ rc = seccomp_attr_set(ctx, SCMP_FLTATR_API_TSKIP, 1);
+ if (rc != 0)
+ goto out;
+ rc = seccomp_attr_get(ctx, SCMP_FLTATR_API_TSKIP, &val);
+ if (rc != 0)
+ goto out;
+ if (val != 1) {
+ rc = -1;
+ goto out;
+ }
+
+ rc = seccomp_attr_set(ctx, SCMP_FLTATR_CTL_LOG, 1);
+ if (rc != 0)
+ goto out;
+ rc = seccomp_attr_get(ctx, SCMP_FLTATR_CTL_LOG, &val);
+ if (rc != 0)
+ goto out;
+ if (val != 1) {
+ rc = -1;
+ goto out;
+ }
+
+
+ rc = seccomp_attr_set(ctx, SCMP_FLTATR_CTL_SSB, 1);
+ if (rc != 0)
+ goto out;
+ rc = seccomp_attr_get(ctx, SCMP_FLTATR_CTL_SSB, &val);
+ if (rc != 0)
+ goto out;
+ if (val != 1) {
+ rc = -1;
+ goto out;
+ }
+
rc = 0;
out:
seccomp_release(ctx);