From: <ch...@su...> - 2013-02-12 12:41:21
|
Hi! > +static void setup(void) > +{ > + char tmp[PATH_MAX]; > + > + tst_require_root(NULL); > + > + /* runtime check if syscall is supported */ > + syscall(__NR_setns, -1, 0); > + What happens when the syscall is not supported? The call should return -1 and errno should be set to ENOSYS but the return value is not checked, I'm puzzled. > + /* check if kernel has CONFIG_*_NS set and exports /proc entries */ > + ns_ipc_fd = get_ns_fd(getpid(), "ns/ipc"); > + ns_uts_fd = get_ns_fd(getpid(), "ns/uts"); > + if (ns_ipc_fd == -1 && ns_uts_fd == -1) > + tst_brkm(TCONF, NULL, "your kernel has CONFIG_IPC_NS, " > + "CONFIG_UTS_NS or CONFIG_PROC disabled"); > + > + if (getcwd(tmp, PATH_MAX) == NULL) > + tst_brkm(TBROK|TERRNO, NULL, "getcwd"); > + ipc_key = ftok(tmp, 65); > + shmid = shmget(ipc_key, getpagesize(), IPC_CREAT | 0666); > + if (shmid == -1) > + tst_brkm(TBROK|TERRNO, NULL, "shmget"); > + > + TEST_PAUSE; > +} -- Cyril Hrubis ch...@su... |