lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:   Sat, 4 Jun 2022 21:55:45 +0800
From:   kernel test robot <lkp@...el.com>
To:     Max Filippov <jcmvbkbc@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: [jcmvbkbc-xtensa:xtensa-5.18-esp32 45/45] kernel/ptrace.c:1209:42:
 error: 'mm_context_t' has no member named 'exec_fdpic_loadmap'

tree:   https://github.com/jcmvbkbc/linux-xtensa xtensa-5.18-esp32
head:   137adeae90088411fe27a1be624afd8336542302
commit: 137adeae90088411fe27a1be624afd8336542302 [45/45] WIP: xtensa: add FDPIC support
config: xtensa-allyesconfig (https://download.01.org/0day-ci/archive/20220604/202206042111.7TXeQiVP-lkp@intel.com/config)
compiler: xtensa-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/jcmvbkbc/linux-xtensa/commit/137adeae90088411fe27a1be624afd8336542302
        git remote add jcmvbkbc-xtensa https://github.com/jcmvbkbc/linux-xtensa
        git fetch --no-tags jcmvbkbc-xtensa xtensa-5.18-esp32
        git checkout 137adeae90088411fe27a1be624afd8336542302
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=xtensa SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

   kernel/ptrace.c: In function 'ptrace_request':
>> kernel/ptrace.c:1209:42: error: 'mm_context_t' has no member named 'exec_fdpic_loadmap'
    1209 |                         tmp = mm->context.exec_fdpic_loadmap;
         |                                          ^
>> kernel/ptrace.c:1212:42: error: 'mm_context_t' has no member named 'interp_fdpic_loadmap'
    1212 |                         tmp = mm->context.interp_fdpic_loadmap;
         |                                          ^
--
   fs/binfmt_elf_fdpic.c: In function 'load_elf_fdpic_binary':
>> fs/binfmt_elf_fdpic.c:364:29: error: 'mm_context_t' has no member named 'exec_fdpic_loadmap'
     364 |         current->mm->context.exec_fdpic_loadmap = 0;
         |                             ^
>> fs/binfmt_elf_fdpic.c:365:29: error: 'mm_context_t' has no member named 'interp_fdpic_loadmap'
     365 |         current->mm->context.interp_fdpic_loadmap = 0;
         |                             ^
   fs/binfmt_elf_fdpic.c: In function 'create_elf_fdpic_tables':
   fs/binfmt_elf_fdpic.c:570:29: error: 'mm_context_t' has no member named 'exec_fdpic_loadmap'
     570 |         current->mm->context.exec_fdpic_loadmap = (unsigned long) sp;
         |                             ^
   fs/binfmt_elf_fdpic.c:583:37: error: 'mm_context_t' has no member named 'interp_fdpic_loadmap'
     583 |                 current->mm->context.interp_fdpic_loadmap = (unsigned long) sp;
         |                                     ^
   fs/binfmt_elf_fdpic.c: In function 'fill_elf_fdpic_header':
>> fs/binfmt_elf_fdpic.c:1252:24: error: 'ELF_FDPIC_CORE_EFLAGS' undeclared (first use in this function)
    1252 |         elf->e_flags = ELF_FDPIC_CORE_EFLAGS;
         |                        ^~~~~~~~~~~~~~~~~~~~~
   fs/binfmt_elf_fdpic.c:1252:24: note: each undeclared identifier is reported only once for each function it appears in
   fs/binfmt_elf_fdpic.c: In function 'elf_dump_thread_status':
   fs/binfmt_elf_fdpic.c:1393:59: error: 'mm_context_t' has no member named 'exec_fdpic_loadmap'
    1393 |         t->prstatus.pr_exec_fdpic_loadmap = p->mm->context.exec_fdpic_loadmap;
         |                                                           ^
   fs/binfmt_elf_fdpic.c:1394:61: error: 'mm_context_t' has no member named 'interp_fdpic_loadmap'
    1394 |         t->prstatus.pr_interp_fdpic_loadmap = p->mm->context.interp_fdpic_loadmap;
         |                                                             ^


vim +1209 kernel/ptrace.c

2225a122ae26d5 Suresh Siddha     2010-02-11  1045  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1046  int ptrace_request(struct task_struct *child, long request,
4abf986960ecda Namhyung Kim      2010-10-27  1047  		   unsigned long addr, unsigned long data)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1048  {
fca26f260c528e Tejun Heo         2011-06-14  1049  	bool seized = child->ptrace & PT_SEIZED;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1050  	int ret = -EIO;
ae7795bc6187a1 Eric W. Biederman 2018-09-25  1051  	kernel_siginfo_t siginfo, *si;
9fed81dc40f5a1 Namhyung Kim      2010-10-27  1052  	void __user *datavp = (void __user *) data;
9fed81dc40f5a1 Namhyung Kim      2010-10-27  1053  	unsigned long __user *datalp = datavp;
fca26f260c528e Tejun Heo         2011-06-14  1054  	unsigned long flags;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1055  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1056  	switch (request) {
16c3e389e7a725 Roland McGrath    2008-01-30  1057  	case PTRACE_PEEKTEXT:
16c3e389e7a725 Roland McGrath    2008-01-30  1058  	case PTRACE_PEEKDATA:
16c3e389e7a725 Roland McGrath    2008-01-30  1059  		return generic_ptrace_peekdata(child, addr, data);
16c3e389e7a725 Roland McGrath    2008-01-30  1060  	case PTRACE_POKETEXT:
16c3e389e7a725 Roland McGrath    2008-01-30  1061  	case PTRACE_POKEDATA:
16c3e389e7a725 Roland McGrath    2008-01-30  1062  		return generic_ptrace_pokedata(child, addr, data);
16c3e389e7a725 Roland McGrath    2008-01-30  1063  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1064  #ifdef PTRACE_OLDSETOPTIONS
^1da177e4c3f41 Linus Torvalds    2005-04-16  1065  	case PTRACE_OLDSETOPTIONS:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1066  #endif
^1da177e4c3f41 Linus Torvalds    2005-04-16  1067  	case PTRACE_SETOPTIONS:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1068  		ret = ptrace_setoptions(child, data);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1069  		break;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1070  	case PTRACE_GETEVENTMSG:
9fed81dc40f5a1 Namhyung Kim      2010-10-27  1071  		ret = put_user(child->ptrace_message, datalp);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1072  		break;
e16b27816462de Roland McGrath    2008-04-20  1073  
84c751bd4aebba Andrey Vagin      2013-04-30  1074  	case PTRACE_PEEKSIGINFO:
84c751bd4aebba Andrey Vagin      2013-04-30  1075  		ret = ptrace_peek_siginfo(child, addr, data);
84c751bd4aebba Andrey Vagin      2013-04-30  1076  		break;
84c751bd4aebba Andrey Vagin      2013-04-30  1077  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1078  	case PTRACE_GETSIGINFO:
e16b27816462de Roland McGrath    2008-04-20  1079  		ret = ptrace_getsiginfo(child, &siginfo);
e16b27816462de Roland McGrath    2008-04-20  1080  		if (!ret)
9fed81dc40f5a1 Namhyung Kim      2010-10-27  1081  			ret = copy_siginfo_to_user(datavp, &siginfo);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1082  		break;
e16b27816462de Roland McGrath    2008-04-20  1083  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1084  	case PTRACE_SETSIGINFO:
4cd2e0e70af689 Eric W. Biederman 2018-04-18  1085  		ret = copy_siginfo_from_user(&siginfo, datavp);
4cd2e0e70af689 Eric W. Biederman 2018-04-18  1086  		if (!ret)
e16b27816462de Roland McGrath    2008-04-20  1087  			ret = ptrace_setsiginfo(child, &siginfo);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1088  		break;
e16b27816462de Roland McGrath    2008-04-20  1089  
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1090  	case PTRACE_GETSIGMASK: {
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1091  		sigset_t *mask;
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1092  
29000caecbe87b Andrey Vagin      2013-07-03  1093  		if (addr != sizeof(sigset_t)) {
29000caecbe87b Andrey Vagin      2013-07-03  1094  			ret = -EINVAL;
29000caecbe87b Andrey Vagin      2013-07-03  1095  			break;
29000caecbe87b Andrey Vagin      2013-07-03  1096  		}
29000caecbe87b Andrey Vagin      2013-07-03  1097  
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1098  		if (test_tsk_restore_sigmask(child))
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1099  			mask = &child->saved_sigmask;
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1100  		else
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1101  			mask = &child->blocked;
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1102  
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1103  		if (copy_to_user(datavp, mask, sizeof(sigset_t)))
29000caecbe87b Andrey Vagin      2013-07-03  1104  			ret = -EFAULT;
29000caecbe87b Andrey Vagin      2013-07-03  1105  		else
29000caecbe87b Andrey Vagin      2013-07-03  1106  			ret = 0;
29000caecbe87b Andrey Vagin      2013-07-03  1107  
29000caecbe87b Andrey Vagin      2013-07-03  1108  		break;
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1109  	}
29000caecbe87b Andrey Vagin      2013-07-03  1110  
29000caecbe87b Andrey Vagin      2013-07-03  1111  	case PTRACE_SETSIGMASK: {
29000caecbe87b Andrey Vagin      2013-07-03  1112  		sigset_t new_set;
29000caecbe87b Andrey Vagin      2013-07-03  1113  
29000caecbe87b Andrey Vagin      2013-07-03  1114  		if (addr != sizeof(sigset_t)) {
29000caecbe87b Andrey Vagin      2013-07-03  1115  			ret = -EINVAL;
29000caecbe87b Andrey Vagin      2013-07-03  1116  			break;
29000caecbe87b Andrey Vagin      2013-07-03  1117  		}
29000caecbe87b Andrey Vagin      2013-07-03  1118  
29000caecbe87b Andrey Vagin      2013-07-03  1119  		if (copy_from_user(&new_set, datavp, sizeof(sigset_t))) {
29000caecbe87b Andrey Vagin      2013-07-03  1120  			ret = -EFAULT;
29000caecbe87b Andrey Vagin      2013-07-03  1121  			break;
29000caecbe87b Andrey Vagin      2013-07-03  1122  		}
29000caecbe87b Andrey Vagin      2013-07-03  1123  
29000caecbe87b Andrey Vagin      2013-07-03  1124  		sigdelsetmask(&new_set, sigmask(SIGKILL)|sigmask(SIGSTOP));
29000caecbe87b Andrey Vagin      2013-07-03  1125  
29000caecbe87b Andrey Vagin      2013-07-03  1126  		/*
29000caecbe87b Andrey Vagin      2013-07-03  1127  		 * Every thread does recalc_sigpending() after resume, so
29000caecbe87b Andrey Vagin      2013-07-03  1128  		 * retarget_shared_pending() and recalc_sigpending() are not
29000caecbe87b Andrey Vagin      2013-07-03  1129  		 * called here.
29000caecbe87b Andrey Vagin      2013-07-03  1130  		 */
29000caecbe87b Andrey Vagin      2013-07-03  1131  		spin_lock_irq(&child->sighand->siglock);
29000caecbe87b Andrey Vagin      2013-07-03  1132  		child->blocked = new_set;
29000caecbe87b Andrey Vagin      2013-07-03  1133  		spin_unlock_irq(&child->sighand->siglock);
29000caecbe87b Andrey Vagin      2013-07-03  1134  
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1135  		clear_tsk_restore_sigmask(child);
fcfc2aa0185f4a Andrei Vagin      2019-03-28  1136  
29000caecbe87b Andrey Vagin      2013-07-03  1137  		ret = 0;
29000caecbe87b Andrey Vagin      2013-07-03  1138  		break;
29000caecbe87b Andrey Vagin      2013-07-03  1139  	}
29000caecbe87b Andrey Vagin      2013-07-03  1140  
fca26f260c528e Tejun Heo         2011-06-14  1141  	case PTRACE_INTERRUPT:
fca26f260c528e Tejun Heo         2011-06-14  1142  		/*
fca26f260c528e Tejun Heo         2011-06-14  1143  		 * Stop tracee without any side-effect on signal or job
fca26f260c528e Tejun Heo         2011-06-14  1144  		 * control.  At least one trap is guaranteed to happen
fca26f260c528e Tejun Heo         2011-06-14  1145  		 * after this request.  If @child is already trapped, the
fca26f260c528e Tejun Heo         2011-06-14  1146  		 * current trap is not disturbed and another trap will
fca26f260c528e Tejun Heo         2011-06-14  1147  		 * happen after the current trap is ended with PTRACE_CONT.
fca26f260c528e Tejun Heo         2011-06-14  1148  		 *
fca26f260c528e Tejun Heo         2011-06-14  1149  		 * The actual trap might not be PTRACE_EVENT_STOP trap but
fca26f260c528e Tejun Heo         2011-06-14  1150  		 * the pending condition is cleared regardless.
fca26f260c528e Tejun Heo         2011-06-14  1151  		 */
fca26f260c528e Tejun Heo         2011-06-14  1152  		if (unlikely(!seized || !lock_task_sighand(child, &flags)))
fca26f260c528e Tejun Heo         2011-06-14  1153  			break;
fca26f260c528e Tejun Heo         2011-06-14  1154  
544b2c91a9f14f Tejun Heo         2011-06-14  1155  		/*
544b2c91a9f14f Tejun Heo         2011-06-14  1156  		 * INTERRUPT doesn't disturb existing trap sans one
544b2c91a9f14f Tejun Heo         2011-06-14  1157  		 * exception.  If ptracer issued LISTEN for the current
544b2c91a9f14f Tejun Heo         2011-06-14  1158  		 * STOP, this INTERRUPT should clear LISTEN and re-trap
544b2c91a9f14f Tejun Heo         2011-06-14  1159  		 * tracee into STOP.
544b2c91a9f14f Tejun Heo         2011-06-14  1160  		 */
fca26f260c528e Tejun Heo         2011-06-14  1161  		if (likely(task_set_jobctl_pending(child, JOBCTL_TRAP_STOP)))
910ffdb18a6408 Oleg Nesterov     2013-01-21  1162  			ptrace_signal_wake_up(child, child->jobctl & JOBCTL_LISTENING);
544b2c91a9f14f Tejun Heo         2011-06-14  1163  
544b2c91a9f14f Tejun Heo         2011-06-14  1164  		unlock_task_sighand(child, &flags);
544b2c91a9f14f Tejun Heo         2011-06-14  1165  		ret = 0;
544b2c91a9f14f Tejun Heo         2011-06-14  1166  		break;
544b2c91a9f14f Tejun Heo         2011-06-14  1167  
544b2c91a9f14f Tejun Heo         2011-06-14  1168  	case PTRACE_LISTEN:
544b2c91a9f14f Tejun Heo         2011-06-14  1169  		/*
544b2c91a9f14f Tejun Heo         2011-06-14  1170  		 * Listen for events.  Tracee must be in STOP.  It's not
544b2c91a9f14f Tejun Heo         2011-06-14  1171  		 * resumed per-se but is not considered to be in TRACED by
544b2c91a9f14f Tejun Heo         2011-06-14  1172  		 * wait(2) or ptrace(2).  If an async event (e.g. group
544b2c91a9f14f Tejun Heo         2011-06-14  1173  		 * stop state change) happens, tracee will enter STOP trap
544b2c91a9f14f Tejun Heo         2011-06-14  1174  		 * again.  Alternatively, ptracer can issue INTERRUPT to
544b2c91a9f14f Tejun Heo         2011-06-14  1175  		 * finish listening and re-trap tracee into STOP.
544b2c91a9f14f Tejun Heo         2011-06-14  1176  		 */
544b2c91a9f14f Tejun Heo         2011-06-14  1177  		if (unlikely(!seized || !lock_task_sighand(child, &flags)))
544b2c91a9f14f Tejun Heo         2011-06-14  1178  			break;
544b2c91a9f14f Tejun Heo         2011-06-14  1179  
544b2c91a9f14f Tejun Heo         2011-06-14  1180  		si = child->last_siginfo;
f9d81f61c84aca Oleg Nesterov     2011-09-25  1181  		if (likely(si && (si->si_code >> 8) == PTRACE_EVENT_STOP)) {
544b2c91a9f14f Tejun Heo         2011-06-14  1182  			child->jobctl |= JOBCTL_LISTENING;
544b2c91a9f14f Tejun Heo         2011-06-14  1183  			/*
f9d81f61c84aca Oleg Nesterov     2011-09-25  1184  			 * If NOTIFY is set, it means event happened between
f9d81f61c84aca Oleg Nesterov     2011-09-25  1185  			 * start of this trap and now.  Trigger re-trap.
544b2c91a9f14f Tejun Heo         2011-06-14  1186  			 */
544b2c91a9f14f Tejun Heo         2011-06-14  1187  			if (child->jobctl & JOBCTL_TRAP_NOTIFY)
910ffdb18a6408 Oleg Nesterov     2013-01-21  1188  				ptrace_signal_wake_up(child, true);
fca26f260c528e Tejun Heo         2011-06-14  1189  			ret = 0;
f9d81f61c84aca Oleg Nesterov     2011-09-25  1190  		}
f9d81f61c84aca Oleg Nesterov     2011-09-25  1191  		unlock_task_sighand(child, &flags);
fca26f260c528e Tejun Heo         2011-06-14  1192  		break;
fca26f260c528e Tejun Heo         2011-06-14  1193  
1bcf548293aef1 Alexey Dobriyan   2007-10-16  1194  	case PTRACE_DETACH:	 /* detach a process that was attached. */
1bcf548293aef1 Alexey Dobriyan   2007-10-16  1195  		ret = ptrace_detach(child, data);
1bcf548293aef1 Alexey Dobriyan   2007-10-16  1196  		break;
36df29d7994180 Roland McGrath    2008-01-30  1197  
9c1a125921d146 Mike Frysinger    2010-05-26  1198  #ifdef CONFIG_BINFMT_ELF_FDPIC
9c1a125921d146 Mike Frysinger    2010-05-26  1199  	case PTRACE_GETFDPIC: {
e0129ef91ed758 Oleg Nesterov     2010-05-26  1200  		struct mm_struct *mm = get_task_mm(child);
9c1a125921d146 Mike Frysinger    2010-05-26  1201  		unsigned long tmp = 0;
9c1a125921d146 Mike Frysinger    2010-05-26  1202  
e0129ef91ed758 Oleg Nesterov     2010-05-26  1203  		ret = -ESRCH;
e0129ef91ed758 Oleg Nesterov     2010-05-26  1204  		if (!mm)
e0129ef91ed758 Oleg Nesterov     2010-05-26  1205  			break;
e0129ef91ed758 Oleg Nesterov     2010-05-26  1206  
9c1a125921d146 Mike Frysinger    2010-05-26  1207  		switch (addr) {
9c1a125921d146 Mike Frysinger    2010-05-26  1208  		case PTRACE_GETFDPIC_EXEC:
e0129ef91ed758 Oleg Nesterov     2010-05-26 @1209  			tmp = mm->context.exec_fdpic_loadmap;
9c1a125921d146 Mike Frysinger    2010-05-26  1210  			break;
9c1a125921d146 Mike Frysinger    2010-05-26  1211  		case PTRACE_GETFDPIC_INTERP:
e0129ef91ed758 Oleg Nesterov     2010-05-26 @1212  			tmp = mm->context.interp_fdpic_loadmap;
9c1a125921d146 Mike Frysinger    2010-05-26  1213  			break;
9c1a125921d146 Mike Frysinger    2010-05-26  1214  		default:
9c1a125921d146 Mike Frysinger    2010-05-26  1215  			break;
9c1a125921d146 Mike Frysinger    2010-05-26  1216  		}
e0129ef91ed758 Oleg Nesterov     2010-05-26  1217  		mmput(mm);
9c1a125921d146 Mike Frysinger    2010-05-26  1218  
9fed81dc40f5a1 Namhyung Kim      2010-10-27  1219  		ret = put_user(tmp, datalp);
9c1a125921d146 Mike Frysinger    2010-05-26  1220  		break;
9c1a125921d146 Mike Frysinger    2010-05-26  1221  	}
9c1a125921d146 Mike Frysinger    2010-05-26  1222  #endif
9c1a125921d146 Mike Frysinger    2010-05-26  1223  

:::::: The code at line 1209 was first introduced by commit
:::::: e0129ef91ed758c06b6557c36124acfb2e1c7305 ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm

:::::: TO: Oleg Nesterov <oleg@...hat.com>
:::::: CC: Linus Torvalds <torvalds@...ux-foundation.org>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ