times-fail
truncate
truncate64
-uid
-uid16
-uid32
uio
umask
umount
times-fail \
truncate \
truncate64 \
- uid \
- uid16 \
- uid32 \
uio \
umask \
umount \
times.test \
truncate.test \
truncate64.test \
- uid.test \
- uid16.test \
- uid32.test \
uio.test \
umask.test \
umount.test \
strace-r.expected \
struct_flock.c \
sun_path.expected \
- uid.awk \
uio.expected \
umovestr.expected \
wait.expected \
+++ /dev/null
-#!/bin/gawk
-#
-# Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-BEGIN {
- r_uint = "(0|[1-9][0-9]*)"
- r_getuid = "getuid" suffix "\\(\\)[[:space:]]+= " r_uint
- r_getxuid = "getxuid" suffix "\\(\\)[[:space:]]+= " r_uint " \\(euid " r_uint "\\)"
- regexp = "^(" r_getuid "|" r_getxuid ")$"
- expected = "getuid"
- fail = 0
-}
-
-regexp == "" {
- fail = 1
- next
-}
-
-{
- if (match($0, regexp, a)) {
- if (expected == "getuid") {
- if ("" != a[2])
- uid = a[2]
- else
- uid = a[3]
- expected = "setuid"
- regexp = "^setuid" suffix "\\(" uid "\\)[[:space:]]+= 0$"
- } else if (expected == "setuid") {
- expected = "getresuid"
- regexp = "^getresuid" suffix "\\(\\[" uid "\\], \\[" uid "\\], \\[" uid "\\]\\)[[:space:]]+= 0$"
- } else if (expected == "getresuid") {
- expected = "setreuid"
- regexp = "^setreuid" suffix "\\(-1, -1\\)[[:space:]]+= 0$"
- } else if (expected == "setreuid") {
- expected = "setresuid"
- regexp = "^setresuid" suffix "\\(" uid ", -1, -1\\)[[:space:]]+= 0$"
- } else if (expected == "setresuid") {
- expected = "fchown"
- regexp = "^fchown" suffix "\\(1, -1, -1\\)[[:space:]]+= 0$"
- } else if (expected == "fchown") {
- expected = "1st getgroups"
- regexp = "^getgroups" suffix "\\(0, NULL\\)[[:space:]]+= " r_uint "$"
- } else if (expected == "1st getgroups") {
- ngroups = a[1]
- if (ngroups == "0")
- list=""
- else if (ngroups == "1")
- list=r_uint
- else
- list=r_uint "(, " r_uint "){" (ngroups - 1) "}"
- expected = "2nd getgroups"
- regexp = "^getgroups" suffix "\\(" ngroups ", \\[" list "\\]\\)[[:space:]]+= " ngroups "$"
- } else if (expected == "2nd getgroups") {
- expected = "the last line"
- regexp = "^\\+\\+\\+ exited with 0 \\+\\+\\+$"
- } else if (expected == "the last line") {
- expected = "nothing"
- regexp = ""
- }
- }
-}
-
-END {
- if (fail) {
- print "Unexpected output after exit"
- exit 1
- }
- if (regexp == "")
- exit 0
- print "error: " expected " doesn't match"
- exit 1
-}
+++ /dev/null
-/*
- * Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "tests.h"
-#include <sys/syscall.h>
-
-#if (defined __NR_getuid || defined __NR_getxuid) \
- && defined(__NR_setuid) \
- && defined(__NR_getresuid) \
- && defined(__NR_setreuid) \
- && defined(__NR_setresuid) \
- && defined(__NR_fchown) \
- && defined(__NR_getgroups)
-
-# include <assert.h>
-# include <stdlib.h>
-# include <unistd.h>
-# include <fcntl.h>
-
-int
-main(void)
-{
- int uid;
- int size;
- int *list = 0;
-
-# ifndef __NR_getuid
-# define __NR_getuid __NR_getxuid
-# endif
- uid = syscall(__NR_getuid);
- check_overflowuid(uid);
-
- assert(syscall(__NR_setuid, uid) == 0);
- {
- /*
- * uids returned by getresuid should be ignored
- * to avoid 16bit vs 32bit issues.
- */
- int r, e, s;
- assert(syscall(__NR_getresuid, &r, &e, &s) == 0);
- }
- assert(syscall(__NR_setreuid, -1, -1L) == 0);
- assert(syscall(__NR_setresuid, uid, -1, -1L) == 0);
- assert(syscall(__NR_fchown, 1, -1, -1L) == 0);
- assert((size = syscall(__NR_getgroups, 0, list)) >= 0);
- assert(list = calloc(size + 1, sizeof(*list)));
- assert(syscall(__NR_getgroups, size, list) == size);
- return 0;
-}
-
-#else
-
-SKIP_MAIN_UNDEFINED("(__NR_getuid || __NR_getxuid)"
- " && __NR_setuid && __NR_getresuid && __NR_setreuid"
- " && __NR_setresuid && __NR_fchown && __NR_getgroups")
-
-#endif
+++ /dev/null
-#!/bin/sh
-
-# Check uid decoding.
-
-. "${srcdir=.}/init.sh"
-
-s="${uid_syscall_suffix-}"
-w="${uid_t_size-}"
-
-run_prog ./uid$s$w
-
-case "$STRACE_ARCH" in
- alpha) getuid=getxuid ;;
- *) getuid=getuid ;;
-esac
-
-syscalls="$getuid$s,setuid$s,getresuid$s,setreuid$s,setresuid$s,fchown$s,getgroups$s"
-run_strace -e trace="$syscalls" $args
-
-AWK=gawk
-match_awk "$LOG" "$srcdir"/uid.awk "$STRACE $args output mismatch" -v suffix="$s"
-
-exit 0
+++ /dev/null
-/*
- * Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "tests.h"
-#include <sys/syscall.h>
-
-#if defined(__NR_getuid) \
- && defined(__NR_setuid) \
- && defined(__NR_getresuid) \
- && defined(__NR_setreuid) \
- && defined(__NR_setresuid) \
- && defined(__NR_fchown) \
- && defined(__NR_getgroups) \
- \
- && defined(__NR_getuid32) \
- && defined(__NR_setuid32) \
- && defined(__NR_getresuid32) \
- && defined(__NR_setreuid32) \
- && defined(__NR_setresuid32) \
- && defined(__NR_fchown32) \
- && defined(__NR_getgroups32) \
- \
- && __NR_getuid != __NR_getuid32 \
- && __NR_setuid != __NR_setuid32 \
- && __NR_getresuid != __NR_getresuid32 \
- && __NR_setreuid != __NR_setreuid32 \
- && __NR_setresuid != __NR_setresuid32 \
- && __NR_fchown != __NR_fchown32 \
- && __NR_getgroups != __NR_getgroups32 \
- /**/
-
-# include <assert.h>
-# include <stdlib.h>
-# include <unistd.h>
-# include <fcntl.h>
-
-int
-main(void)
-{
- int uid;
- int size;
- int *list = 0;
-
- uid = syscall(__NR_getuid);
- check_overflowuid(uid);
-
- assert(syscall(__NR_setuid, uid) == 0);
- {
- /*
- * uids returned by getresuid should be ignored
- * to avoid 16bit vs 32bit issues.
- */
- int r, e, s;
- assert(syscall(__NR_getresuid, &r, &e, &s) == 0);
- }
- assert(syscall(__NR_setreuid, -1, 0xffff) == 0);
- assert(syscall(__NR_setresuid, uid, -1, 0xffff) == 0);
- assert(syscall(__NR_fchown, 1, -1, 0xffff) == 0);
- assert((size = syscall(__NR_getgroups, 0, list)) >= 0);
- assert(list = calloc(size + 1, sizeof(*list)));
- assert(syscall(__NR_getgroups, size, list) == size);
- return 0;
-}
-
-#else
-
-SKIP_MAIN_UNDEFINED("__NR_getuid && __NR_setuid && __NR_getresuid"
- " && __NR_setreuid && __NR_setresuid"
- " && __NR_fchown && __NR_getgroups"
- " && __NR_getuid32 && __NR_setuid32 && __NR_getresuid32"
- " && __NR_setreuid32 && __NR_setresuid32"
- " && __NR_fchown32 && __NR_getgroups32")
-
-#endif
+++ /dev/null
-#!/bin/sh
-
-# Check uid16_t decoding.
-
-uid_t_size=16
-
-. "${srcdir=.}/uid.test"
+++ /dev/null
-/*
- * Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "tests.h"
-#include <sys/syscall.h>
-
-#if defined(__NR_getuid32) \
- && defined(__NR_setuid32) \
- && defined(__NR_getresuid32) \
- && defined(__NR_setreuid32) \
- && defined(__NR_setresuid32) \
- && defined(__NR_fchown32) \
- && defined(__NR_getgroups32)
-
-# include <assert.h>
-# include <stdlib.h>
-# include <unistd.h>
-
-int
-main(void)
-{
- int r, e, s;
- int size;
- int *list = 0;
-
- r = syscall(__NR_getuid32);
- assert(syscall(__NR_setuid32, r) == 0);
- assert(syscall(__NR_getresuid32, &r, &e, &s) == 0);
- assert(syscall(__NR_setreuid32, -1, -1L) == 0);
- assert(syscall(__NR_setresuid32, r, -1, -1L) == 0);
- assert(syscall(__NR_fchown32, 1, -1, -1L) == 0);
- assert((size = syscall(__NR_getgroups32, 0, list)) >= 0);
- assert(list = calloc(size + 1, sizeof(*list)));
- assert(syscall(__NR_getgroups32, size, list) == size);
- return 0;
-}
-
-#else
-
-SKIP_MAIN_UNDEFINED("__NR_getuid32 && __NR_setuid32 && __NR_getresuid32"
- " && __NR_setreuid32 && __NR_setresuid32"
- " && __NR_fchown32 && __NR_getgroups32")
-
-#endif
+++ /dev/null
-#!/bin/sh
-
-# Check uid32 decoding.
-
-uid_syscall_suffix=32
-
-. "${srcdir=.}/uid.test"