[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen staging] tools/tests/depriv-fd-checker: Support checking of Linux tun devices
commit 73ba1d436b3d601fcc1186261e9f813de5cfd569 Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> AuthorDate: Wed May 30 16:49:25 2018 +0100 Commit: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CommitDate: Fri Jul 6 16:27:52 2018 +0100 tools/tests/depriv-fd-checker: Support checking of Linux tun devices Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- tools/tests/depriv/depriv-fd-checker.c | 36 +++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/tools/tests/depriv/depriv-fd-checker.c b/tools/tests/depriv/depriv-fd-checker.c index 67a36745e5..e57390f663 100644 --- a/tools/tests/depriv/depriv-fd-checker.c +++ b/tools/tests/depriv/depriv-fd-checker.c @@ -10,6 +10,7 @@ * privcmd gntdev evtchn FD should be appropriate Xen control fd * readonly FD is expected to be readonly * appendonly FD is expected to be append write only + # tun FD is expected to be an open tun device * * In each case FD is probably a reference to an open-file stolen * from another process, eg by the use of fishdescriptor. @@ -22,11 +23,14 @@ * * depriv-fd-checker will perhaps print, for each triplet: * CLASS checking FD INFORMATION... X-INFO - * and in any case print, for each triplet: + * and in any case print, for each triplet, exactly one of: * CLASS pass|fail FD INFORMATION... X-INFO + * tun maybe FD IFNAME X-INFO * * "pass" means that the descriptor was restricted as expected. * "fail" means that the descriptor was unrestricted. + * "maybe" means that further information is printed, as detailed above, + * and the caller should check that it is as expected */ /* * Copyright (C)2018 Citrix Systems R&D @@ -320,6 +324,35 @@ static void check_appendonly(void) { report("pass", "fcntl", mbuf); } +#if defined(__linux__) +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <linux/if.h> +#include <linux/if_tun.h> + +/* linux tun */ + +static void setup_tun(void) { } +static void check_tun(void) { + struct ifreq ifr; + int r; + + memset(&ifr,0,sizeof(ifr)); + r = ioctl(object_fd, TUNGETIFF, (void*)&ifr); + if (r<0) trouble("TUNGETIFF"); + printf("tun maybe %d %.*s %s\n", object_fd, + (int)IFNAMSIZ, ifr.ifr_ifrn.ifrn_name, + fd_desc); +} + +#define PLATFORM_CLASSES \ + DEFCHECK(tun), + +#else /* !defined(__linux__) */ +#define PLATFORM_CLASSES /* empty */ +#endif + /* class table and main program */ #define DEFCLASS(cl) \ @@ -341,6 +374,7 @@ static const struct classinfo { DEFCLASS(evtchn), DEFCHECK(readonly), DEFCHECK(appendonly), + PLATFORM_CLASSES { 0 } }; -- generated by git-patchbot for /home/xen/git/xen.git#staging _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |