Skip to content

Commit

Permalink
tests: fix 11-basic-basic_errors on old kernels (API level < 5)
Browse files Browse the repository at this point in the history
Reported-by: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
Reported-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>

(imported from commit 5532444)
  • Loading branch information
pcmoore committed Oct 18, 2021
1 parent 41e3d17 commit 435b8a4
Showing 1 changed file with 39 additions and 33 deletions.
72 changes: 39 additions & 33 deletions tests/11-basic-basic_errors.c
Expand Up @@ -29,9 +29,13 @@ int main(int argc, char *argv[])
int rc;
scmp_filter_ctx ctx;
uint32_t attr;
unsigned int api;
struct seccomp_notif *req = NULL;
struct seccomp_notif_resp *resp = NULL;

/* get the api level */
api = seccomp_api_get();

/* seccomp_init errors */
ctx = seccomp_init(SCMP_ACT_ALLOW + 1);
if (ctx != NULL)
Expand Down Expand Up @@ -199,39 +203,41 @@ int main(int argc, char *argv[])
ctx = NULL;

/* seccomp notify errors */
ctx = seccomp_init(SCMP_ACT_ALLOW);
if (ctx == NULL)
return -1;
rc = seccomp_notify_alloc(NULL, NULL);
if (rc != 0)
return -1;
rc = seccomp_notify_alloc(&req, NULL);
if (rc != 0)
return -1;
rc = seccomp_notify_alloc(NULL, &resp);
if (rc != 0)
return -1;
seccomp_notify_free(NULL, NULL);
seccomp_notify_free(req, resp);
req = NULL;
resp = NULL;
rc = seccomp_notify_receive(-1, NULL);
if (rc == 0)
return -1;
rc = seccomp_notify_respond(-1, NULL);
if (rc == 0)
return -1;
rc = seccomp_notify_id_valid(-1, 0);
if (rc == 0)
return -1;
rc = seccomp_notify_fd(NULL);
if (rc == 0)
return -1;
rc = seccomp_notify_fd(ctx);
if (rc == 0)
return -1;
seccomp_release(ctx);
ctx = NULL;
if (api >= 5) {
ctx = seccomp_init(SCMP_ACT_ALLOW);
if (ctx == NULL)
return -1;
rc = seccomp_notify_alloc(NULL, NULL);
if (rc != 0)
return -1;
rc = seccomp_notify_alloc(&req, NULL);
if (rc != 0)
return -1;
rc = seccomp_notify_alloc(NULL, &resp);
if (rc != 0)
return -1;
seccomp_notify_free(NULL, NULL);
seccomp_notify_free(req, resp);
req = NULL;
resp = NULL;
rc = seccomp_notify_receive(-1, NULL);
if (rc == 0)
return -1;
rc = seccomp_notify_respond(-1, NULL);
if (rc == 0)
return -1;
rc = seccomp_notify_id_valid(-1, 0);
if (rc == 0)
return -1;
rc = seccomp_notify_fd(NULL);
if (rc == 0)
return -1;
rc = seccomp_notify_fd(ctx);
if (rc == 0)
return -1;
seccomp_release(ctx);
ctx = NULL;
}

return 0;
}

0 comments on commit 435b8a4

Please sign in to comment.