summaryrefslogtreecommitdiff
path: root/tests/core_auth.c
diff options
context:
space:
mode:
authorPetri Latvala <petri.latvala@intel.com>2019-05-15 13:19:56 +0300
committerPetri Latvala <petri.latvala@intel.com>2019-05-16 12:45:08 +0300
commit0d488fae6d35c222c8a527c9fb85614800ead646 (patch)
tree1fdda2717ef824b8c7bf4ae82f8d11c4007e9294 /tests/core_auth.c
parent61dd8eec659062eac67823ccd9f2189c3aa36201 (diff)
Revert "tests/core_unauth_vs_render: new test for the relaxed DRM_AUTH handling"
The kernel patch for relaxed DRM_AUTH handling caused a regression, highlighting bug in the RADV implementation, and was reverted. The patch will be reinstated, likely in different form, although until then disable the test. See the thread for details. https://lists.freedesktop.org/archives/dri-devel/2019-April/215018.html This reverts commit 90f78ac704718a4dc089ca99041f032191c6f8b1. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110467 Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Emil Velikov <emil.velikov@collabora.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Emil Velikov <emil.velikov@collabora.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> #irc
Diffstat (limited to 'tests/core_auth.c')
-rw-r--r--tests/core_auth.c114
1 files changed, 0 insertions, 114 deletions
diff --git a/tests/core_auth.c b/tests/core_auth.c
index 49cad7cd..9c240fdb 100644
--- a/tests/core_auth.c
+++ b/tests/core_auth.c
@@ -1,6 +1,5 @@
/*
* Copyright 2015 David Herrmann <dh.herrmann@gmail.com>
- * Copyright 2018 Collabora, Ltd
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -43,7 +42,6 @@
#include <sys/time.h>
#include <sys/poll.h>
#include <sys/resource.h>
-#include <sys/sysmacros.h>
#include "drm.h"
#ifndef __linux__
@@ -192,105 +190,6 @@ static void test_basic_auth(int master)
close(slave);
}
-static bool has_prime_import(int fd)
-{
- uint64_t value;
-
- if (drmGetCap(fd, DRM_CAP_PRIME, &value))
- return false;
-
- return value & DRM_PRIME_CAP_IMPORT;
-}
-
-static void check_auth_sanity(int master)
-{
- uint32_t handle;
-
- igt_assert(check_auth(master) == true);
- igt_require(has_prime_import(master));
-
- igt_assert(drmPrimeFDToHandle(master, -1, &handle) < 0);
-
- /* IOCTL requires authenticated master as done in drm_permit.
- * As we get past that, we'll fail due to the invalid FD.
- *
- * Note: strictly speaking this is unrelated to the goal of
- * the test, although danvet requested it.
- */
- igt_assert(errno == EBADF);
-}
-
-static bool has_render_node(int fd)
-{
- char node_name[80];
- struct stat sbuf;
-
- if (fstat(fd, &sbuf))
- return false;
-
- sprintf(node_name, "/dev/dri/renderD%d", minor(sbuf.st_rdev) | 0x80);
- if (stat(node_name, &sbuf))
- return false;
-
- return true;
-}
-
-/*
- * Testcase: Render capable, unauthenticated master doesn't throw -EACCES for
- * DRM_RENDER_ALLOW ioctls.
- */
-static void test_unauth_vs_render(int master)
-{
- int slave;
- uint32_t handle;
- struct stat statbuf;
- bool has_render;
-
- /* need to check for render nodes before we wreak the filesystem */
- has_render = has_render_node(master);
-
- /* create a card node matching master which (only) we can access as
- * non-root */
- do_or_die(fstat(master, &statbuf));
- do_or_die(unshare(CLONE_NEWNS));
- do_or_die(mount(NULL, "/", NULL, MS_PRIVATE | MS_REC, NULL));
- do_or_die(mount("none", "/dev/dri", "tmpfs", 0, NULL));
- umask(0);
- do_or_die(mknod("/dev/dri/card", S_IFCHR | 0666, statbuf.st_rdev));
-
- igt_drop_root();
-
- slave = open("/dev/dri/card", O_RDWR);
-
- igt_assert(slave >= 0);
-
- /*
- * The second open() happens without CAP_SYS_ADMIN, thus it will NOT
- * be authenticated.
- */
- igt_assert(check_auth(slave) == false);
-
- /* Issuing the following ioctl will fail, no doubt about it. */
- igt_assert(drmPrimeFDToHandle(slave, -1, &handle) < 0);
-
- /*
- * Updated kernels allow render capable, unauthenticated master to
- * issue DRM_AUTH ioctls (like FD2HANDLE above), as long as they are
- * annotated as DRM_RENDER_ALLOW.
- *
- * Otherwise, errno is set to -EACCES
- *
- * Note: We are _not_ interested in the FD2HANDLE specific errno,
- * yet the EBADF check is added on the explicit request by danvet.
- */
- if (has_render)
- igt_assert(errno == EBADF);
- else
- igt_assert(errno == EACCES);
-
- close(slave);
-}
-
igt_main
{
int master;
@@ -329,17 +228,4 @@ igt_main
igt_subtest("many-magics")
test_many_magics(master);
}
-
- igt_subtest_group {
- igt_fixture
- master = drm_open_driver(DRIVER_ANY);
-
- igt_subtest("unauth-vs-render") {
- check_auth_sanity(master);
-
- igt_fork(child, 1)
- test_unauth_vs_render(master);
- igt_waitchildren();
- }
- }
}