From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752060AbeESAO1 (ORCPT ); Fri, 18 May 2018 20:14:27 -0400 Received: from mga06.intel.com ([134.134.136.31]:4313 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751049AbeESAOY (ORCPT ); Fri, 18 May 2018 20:14:24 -0400 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,416,1520924400"; d="gz'50?scan'50,208,50";a="229904192" Date: Sat, 19 May 2018 08:14:18 +0800 From: kbuild test robot To: Tycho Andersen Cc: kbuild-all@01.org, linux-kernel@vger.kernel.org, containers@lists.linux-foundation.org, Kees Cook , Andy Lutomirski , Oleg Nesterov , "Eric W . Biederman" , "Serge E . Hallyn" , Christian Brauner , Tyler Hicks , Akihiro Suda , "Tobin C . Harding" , Tycho Andersen Subject: Re: [PATCH v2 1/4] seccomp: add a return code to trap to userspace Message-ID: <201805190859.CUtCst9h%fengguang.wu@intel.com> References: <20180517151218.12850-2-tycho@tycho.ws> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="gBBFr7Ir9EOA20Yy" Content-Disposition: inline In-Reply-To: <20180517151218.12850-2-tycho@tycho.ws> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: fengguang.wu@intel.com X-SA-Exim-Scanned: No (on bee); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --gBBFr7Ir9EOA20Yy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Tycho, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.17-rc5] [cannot apply to next-20180517] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Tycho-Andersen/seccomp-trap-to-userspace/20180519-071527 config: x86_64-randconfig-x010-201819 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): kernel/seccomp.c: In function '__seccomp_filter': >> kernel/seccomp.c:891:46: warning: passing argument 2 of 'seccomp_do_user_notification' makes integer from pointer without a cast [-Wint-conversion] seccomp_do_user_notification(this_syscall, match, sd); ^~~~~ kernel/seccomp.c:802:13: note: expected 'u32 {aka unsigned int}' but argument is of type 'struct seccomp_filter *' static void seccomp_do_user_notification(int this_syscall, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> kernel/seccomp.c:891:53: error: passing argument 3 of 'seccomp_do_user_notification' from incompatible pointer type [-Werror=incompatible-pointer-types] seccomp_do_user_notification(this_syscall, match, sd); ^~ kernel/seccomp.c:802:13: note: expected 'struct seccomp_filter *' but argument is of type 'const struct seccomp_data *' static void seccomp_do_user_notification(int this_syscall, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> kernel/seccomp.c:891:3: error: too few arguments to function 'seccomp_do_user_notification' seccomp_do_user_notification(this_syscall, match, sd); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/seccomp.c:802:13: note: declared here static void seccomp_do_user_notification(int this_syscall, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/seccomp.c: In function 'seccomp_set_mode_filter': >> kernel/seccomp.c:1036:14: error: implicit declaration of function 'get_unused_fd_flags'; did you mean 'getname_flags'? [-Werror=implicit-function-declaration] listener = get_unused_fd_flags(O_RDWR); ^~~~~~~~~~~~~~~~~~~ getname_flags >> kernel/seccomp.c:1042:16: error: implicit declaration of function 'init_listener'; did you mean 'init_llist_head'? [-Werror=implicit-function-declaration] listener_f = init_listener(current, prepared); ^~~~~~~~~~~~~ init_llist_head >> kernel/seccomp.c:1042:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion] listener_f = init_listener(current, prepared); ^ >> kernel/seccomp.c:1044:4: error: implicit declaration of function 'put_unused_fd'; did you mean 'put_user_ns'? [-Werror=implicit-function-declaration] put_unused_fd(listener); ^~~~~~~~~~~~~ put_user_ns >> kernel/seccomp.c:1077:4: error: implicit declaration of function 'fput'; did you mean 'iput'? [-Werror=implicit-function-declaration] fput(listener_f); ^~~~ iput >> kernel/seccomp.c:1080:4: error: implicit declaration of function 'fd_install'; did you mean 'fs_initcall'? [-Werror=implicit-function-declaration] fd_install(listener, listener_f); ^~~~~~~~~~ fs_initcall cc1: some warnings being treated as errors vim +/seccomp_do_user_notification +891 kernel/seccomp.c 738 739 static void seccomp_do_user_notification(int this_syscall, 740 struct seccomp_filter *match, 741 const struct seccomp_data *sd) 742 { 743 int err; 744 long ret = 0; 745 struct seccomp_knotif n = {}; 746 747 mutex_lock(&match->notify_lock); 748 if (!match->has_listener) { 749 err = -ENOSYS; 750 goto out; 751 } 752 753 n.pid = current->pid; 754 n.state = SECCOMP_NOTIFY_INIT; 755 n.data = sd; 756 n.id = seccomp_next_notify_id(match); 757 init_completion(&n.ready); 758 759 list_add(&n.list, &match->notifications); 760 761 mutex_unlock(&match->notify_lock); 762 up(&match->request); 763 764 err = wait_for_completion_interruptible(&n.ready); 765 mutex_lock(&match->notify_lock); 766 767 /* 768 * Here it's possible we got a signal and then had to wait on the mutex 769 * while the reply was sent, so let's be sure there wasn't a response 770 * in the meantime. 771 */ 772 if (err < 0 && n.state != SECCOMP_NOTIFY_REPLIED) { 773 /* 774 * We got a signal. Let's tell userspace about it (potentially 775 * again, if we had already notified them about the first one). 776 */ 777 if (n.state == SECCOMP_NOTIFY_SENT) { 778 n.state = SECCOMP_NOTIFY_INIT; 779 up(&match->request); 780 } 781 mutex_unlock(&match->notify_lock); 782 err = wait_for_completion_killable(&n.ready); 783 mutex_lock(&match->notify_lock); 784 if (err < 0) 785 goto remove_list; 786 } 787 788 ret = n.val; 789 err = n.error; 790 791 WARN(n.state != SECCOMP_NOTIFY_REPLIED, 792 "notified about write complete when state is not write"); 793 794 remove_list: 795 list_del(&n.list); 796 out: 797 mutex_unlock(&match->notify_lock); 798 syscall_set_return_value(current, task_pt_regs(current), 799 err, ret); 800 } 801 #else > 802 static void seccomp_do_user_notification(int this_syscall, 803 u32 action, 804 struct seccomp_filter *match, 805 const struct seccomp_data *sd) 806 { 807 WARN(1, "user notification received, but disabled"); 808 seccomp_log(this_syscall, SIGSYS, action, true); 809 do_exit(SIGSYS); 810 } 811 #endif 812 813 #ifdef CONFIG_SECCOMP_FILTER 814 static int __seccomp_filter(int this_syscall, const struct seccomp_data *sd, 815 const bool recheck_after_trace) 816 { 817 u32 filter_ret, action; 818 struct seccomp_filter *match = NULL; 819 int data; 820 821 /* 822 * Make sure that any changes to mode from another thread have 823 * been seen after TIF_SECCOMP was seen. 824 */ 825 rmb(); 826 827 filter_ret = seccomp_run_filters(sd, &match); 828 data = filter_ret & SECCOMP_RET_DATA; 829 action = filter_ret & SECCOMP_RET_ACTION_FULL; 830 831 switch (action) { 832 case SECCOMP_RET_ERRNO: 833 /* Set low-order bits as an errno, capped at MAX_ERRNO. */ 834 if (data > MAX_ERRNO) 835 data = MAX_ERRNO; 836 syscall_set_return_value(current, task_pt_regs(current), 837 -data, 0); 838 goto skip; 839 840 case SECCOMP_RET_TRAP: 841 /* Show the handler the original registers. */ 842 syscall_rollback(current, task_pt_regs(current)); 843 /* Let the filter pass back 16 bits of data. */ 844 seccomp_send_sigsys(this_syscall, data); 845 goto skip; 846 847 case SECCOMP_RET_TRACE: 848 /* We've been put in this state by the ptracer already. */ 849 if (recheck_after_trace) 850 return 0; 851 852 /* ENOSYS these calls if there is no tracer attached. */ 853 if (!ptrace_event_enabled(current, PTRACE_EVENT_SECCOMP)) { 854 syscall_set_return_value(current, 855 task_pt_regs(current), 856 -ENOSYS, 0); 857 goto skip; 858 } 859 860 /* Allow the BPF to provide the event message */ 861 ptrace_event(PTRACE_EVENT_SECCOMP, data); 862 /* 863 * The delivery of a fatal signal during event 864 * notification may silently skip tracer notification, 865 * which could leave us with a potentially unmodified 866 * syscall that the tracer would have liked to have 867 * changed. Since the process is about to die, we just 868 * force the syscall to be skipped and let the signal 869 * kill the process and correctly handle any tracer exit 870 * notifications. 871 */ 872 if (fatal_signal_pending(current)) 873 goto skip; 874 /* Check if the tracer forced the syscall to be skipped. */ 875 this_syscall = syscall_get_nr(current, task_pt_regs(current)); 876 if (this_syscall < 0) 877 goto skip; 878 879 /* 880 * Recheck the syscall, since it may have changed. This 881 * intentionally uses a NULL struct seccomp_data to force 882 * a reload of all registers. This does not goto skip since 883 * a skip would have already been reported. 884 */ 885 if (__seccomp_filter(this_syscall, NULL, true)) 886 return -1; 887 888 return 0; 889 890 case SECCOMP_RET_USER_NOTIF: > 891 seccomp_do_user_notification(this_syscall, match, sd); 892 goto skip; 893 case SECCOMP_RET_LOG: 894 seccomp_log(this_syscall, 0, action, true); 895 return 0; 896 897 case SECCOMP_RET_ALLOW: 898 /* 899 * Note that the "match" filter will always be NULL for 900 * this action since SECCOMP_RET_ALLOW is the starting 901 * state in seccomp_run_filters(). 902 */ 903 return 0; 904 905 case SECCOMP_RET_KILL_THREAD: 906 case SECCOMP_RET_KILL_PROCESS: 907 default: 908 seccomp_log(this_syscall, SIGSYS, action, true); 909 /* Dump core only if this is the last remaining thread. */ 910 if (action == SECCOMP_RET_KILL_PROCESS || 911 get_nr_threads(current) == 1) { 912 siginfo_t info; 913 914 /* Show the original registers in the dump. */ 915 syscall_rollback(current, task_pt_regs(current)); 916 /* Trigger a manual coredump since do_exit skips it. */ 917 seccomp_init_siginfo(&info, this_syscall, data); 918 do_coredump(&info); 919 } 920 if (action == SECCOMP_RET_KILL_PROCESS) 921 do_group_exit(SIGSYS); 922 else 923 do_exit(SIGSYS); 924 } 925 926 unreachable(); 927 928 skip: 929 seccomp_log(this_syscall, 0, action, match ? match->log : false); 930 return -1; 931 } 932 #else 933 static int __seccomp_filter(int this_syscall, const struct seccomp_data *sd, 934 const bool recheck_after_trace) 935 { 936 BUG(); 937 } 938 #endif 939 940 int __secure_computing(const struct seccomp_data *sd) 941 { 942 int mode = current->seccomp.mode; 943 int this_syscall; 944 945 if (IS_ENABLED(CONFIG_CHECKPOINT_RESTORE) && 946 unlikely(current->ptrace & PT_SUSPEND_SECCOMP)) 947 return 0; 948 949 this_syscall = sd ? sd->nr : 950 syscall_get_nr(current, task_pt_regs(current)); 951 952 switch (mode) { 953 case SECCOMP_MODE_STRICT: 954 __secure_computing_strict(this_syscall); /* may call do_exit */ 955 return 0; 956 case SECCOMP_MODE_FILTER: 957 return __seccomp_filter(this_syscall, sd, false); 958 default: 959 BUG(); 960 } 961 } 962 #endif /* CONFIG_HAVE_ARCH_SECCOMP_FILTER */ 963 964 long prctl_get_seccomp(void) 965 { 966 return current->seccomp.mode; 967 } 968 969 /** 970 * seccomp_set_mode_strict: internal function for setting strict seccomp 971 * 972 * Once current->seccomp.mode is non-zero, it may not be changed. 973 * 974 * Returns 0 on success or -EINVAL on failure. 975 */ 976 static long seccomp_set_mode_strict(void) 977 { 978 const unsigned long seccomp_mode = SECCOMP_MODE_STRICT; 979 long ret = -EINVAL; 980 981 spin_lock_irq(¤t->sighand->siglock); 982 983 if (!seccomp_may_assign_mode(seccomp_mode)) 984 goto out; 985 986 #ifdef TIF_NOTSC 987 disable_TSC(); 988 #endif 989 seccomp_assign_mode(current, seccomp_mode); 990 ret = 0; 991 992 out: 993 spin_unlock_irq(¤t->sighand->siglock); 994 995 return ret; 996 } 997 998 #ifdef CONFIG_SECCOMP_FILTER 999 #ifdef CONFIG_SECCOMP_USER_NOTIFICATION 1000 static struct file *init_listener(struct task_struct *, 1001 struct seccomp_filter *); 1002 #endif 1003 1004 /** 1005 * seccomp_set_mode_filter: internal function for setting seccomp filter 1006 * @flags: flags to change filter behavior 1007 * @filter: struct sock_fprog containing filter 1008 * 1009 * This function may be called repeatedly to install additional filters. 1010 * Every filter successfully installed will be evaluated (in reverse order) 1011 * for each system call the task makes. 1012 * 1013 * Once current->seccomp.mode is non-zero, it may not be changed. 1014 * 1015 * Returns 0 on success or -EINVAL on failure. 1016 */ 1017 static long seccomp_set_mode_filter(unsigned int flags, 1018 const char __user *filter) 1019 { 1020 const unsigned long seccomp_mode = SECCOMP_MODE_FILTER; 1021 struct seccomp_filter *prepared = NULL; 1022 long ret = -EINVAL; 1023 int listener = 0; 1024 struct file *listener_f = NULL; 1025 1026 /* Validate flags. */ 1027 if (flags & ~SECCOMP_FILTER_FLAG_MASK) 1028 return -EINVAL; 1029 1030 /* Prepare the new filter before holding any locks. */ 1031 prepared = seccomp_prepare_user_filter(filter); 1032 if (IS_ERR(prepared)) 1033 return PTR_ERR(prepared); 1034 1035 if (flags & SECCOMP_FILTER_FLAG_GET_LISTENER) { > 1036 listener = get_unused_fd_flags(O_RDWR); 1037 if (listener < 0) { 1038 ret = listener; 1039 goto out_free; 1040 } 1041 > 1042 listener_f = init_listener(current, prepared); 1043 if (IS_ERR(listener_f)) { > 1044 put_unused_fd(listener); 1045 ret = PTR_ERR(listener_f); 1046 goto out_free; 1047 } 1048 } 1049 1050 /* 1051 * Make sure we cannot change seccomp or nnp state via TSYNC 1052 * while another thread is in the middle of calling exec. 1053 */ 1054 if (flags & SECCOMP_FILTER_FLAG_TSYNC && 1055 mutex_lock_killable(¤t->signal->cred_guard_mutex)) 1056 goto out_put_fd; 1057 1058 spin_lock_irq(¤t->sighand->siglock); 1059 1060 if (!seccomp_may_assign_mode(seccomp_mode)) 1061 goto out; 1062 1063 ret = seccomp_attach_filter(flags, prepared); 1064 if (ret) 1065 goto out; 1066 /* Do not free the successfully attached filter. */ 1067 prepared = NULL; 1068 1069 seccomp_assign_mode(current, seccomp_mode); 1070 out: 1071 spin_unlock_irq(¤t->sighand->siglock); 1072 if (flags & SECCOMP_FILTER_FLAG_TSYNC) 1073 mutex_unlock(¤t->signal->cred_guard_mutex); 1074 out_put_fd: 1075 if (flags & SECCOMP_FILTER_FLAG_GET_LISTENER) { 1076 if (ret < 0) { > 1077 fput(listener_f); 1078 put_unused_fd(listener); 1079 } else { > 1080 fd_install(listener, listener_f); 1081 ret = listener; 1082 } 1083 } 1084 out_free: 1085 seccomp_filter_free(prepared); 1086 return ret; 1087 } 1088 #else 1089 static inline long seccomp_set_mode_filter(unsigned int flags, 1090 const char __user *filter) 1091 { 1092 return -EINVAL; 1093 } 1094 #endif 1095 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --gBBFr7Ir9EOA20Yy Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 jQEA --gBBFr7Ir9EOA20Yy--