From: kernel test robot <lkp@intel.com>
To: Jianhui Zhou <jianhuizzzzz@gmail.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
David Hildenbrand <david@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>
Subject: [akpm-mm:mm-unstable 34/207] fs/binfmt_elf.c:1140:17: warning: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 4294967296 to 0
Date: Sat, 07 Mar 2026 20:21:02 +0800 [thread overview]
Message-ID: <202603072018.Dl1xONhs-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable
head: 49cb736d092aaa856283e33b78ec3afb3964d82f
commit: cd9119a9480d9d93fdf06792f8f9917cc4f9999c [34/207] mm/userfaultfd: fix hugetlb fault mutex hash calculation
config: powerpc-currituck_defconfig (https://download.01.org/0day-ci/archive/20260307/202603072018.Dl1xONhs-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project c32caeec8158d634bb71ab8911a6031248b9fc47)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260307/202603072018.Dl1xONhs-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603072018.Dl1xONhs-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from fs/binfmt_elf.c:31:
include/linux/hugetlb.h:1214:9: error: call to undeclared function 'linear_page_index'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1214 | return linear_page_index(vma, address);
| ^
In file included from fs/binfmt_elf.c:32:
include/linux/pagemap.h:1079:23: error: conflicting types for 'linear_page_index'
1079 | static inline pgoff_t linear_page_index(const struct vm_area_struct *vma,
| ^
include/linux/hugetlb.h:1214:9: note: previous implicit declaration is here
1214 | return linear_page_index(vma, address);
| ^
>> fs/binfmt_elf.c:1140:17: warning: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 4294967296 to 0 [-Wconstant-conversion]
1140 | load_bias = ELF_ET_DYN_BASE;
| ~ ^~~~~~~~~~~~~~~
arch/powerpc/include/asm/elf.h:28:10: note: expanded from macro 'ELF_ET_DYN_BASE'
28 | 0x100000000UL)
| ^~~~~~~~~~~~~
fs/binfmt_elf.c:1326:13: warning: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 4294967296 to 0 [-Wconstant-conversion]
1326 | elf_brk = ELF_ET_DYN_BASE;
| ~ ^~~~~~~~~~~~~~~
arch/powerpc/include/asm/elf.h:28:10: note: expanded from macro 'ELF_ET_DYN_BASE'
28 | 0x100000000UL)
| ^~~~~~~~~~~~~
2 warnings and 2 errors generated.
vim +1140 fs/binfmt_elf.c
00e19ceec80b03a Dave Martin 2020-03-16 831
71613c3b871c5a9 Al Viro 2012-10-20 832 static int load_elf_binary(struct linux_binprm *bprm)
^1da177e4c3f415 Linus Torvalds 2005-04-16 833 {
^1da177e4c3f415 Linus Torvalds 2005-04-16 834 struct file *interpreter = NULL; /* to shut gcc up */
2b4bfbe0967697c Akira Kawata 2022-01-27 835 unsigned long load_bias = 0, phdr_addr = 0;
2b4bfbe0967697c Akira Kawata 2022-01-27 836 int first_pt_load = 1;
^1da177e4c3f415 Linus Torvalds 2005-04-16 837 unsigned long error;
a9d9ef133f443ae Paul Burton 2014-09-11 838 struct elf_phdr *elf_ppnt, *elf_phdata, *interp_elf_phdata = NULL;
00e19ceec80b03a Dave Martin 2020-03-16 839 struct elf_phdr *elf_property_phdata = NULL;
8ed2ef21ff564cf Kees Cook 2023-09-28 840 unsigned long elf_brk;
11854fe263eb1b9 Kees Cook 2025-04-25 841 bool brk_moved = false;
^1da177e4c3f415 Linus Torvalds 2005-04-16 842 int retval, i;
cc503c1b43e002e Jiri Kosina 2008-01-30 843 unsigned long elf_entry;
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 844 unsigned long e_entry;
cc503c1b43e002e Jiri Kosina 2008-01-30 845 unsigned long interp_load_addr = 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 846 unsigned long start_code, end_code, start_data, end_data;
1a530a6f23f7dca David Daney 2011-03-22 847 unsigned long reloc_func_desc __maybe_unused = 0;
8de61e69c2feb10 David Rientjes 2006-12-06 848 int executable_stack = EXSTACK_DEFAULT;
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 849 struct elfhdr *elf_ex = (struct elfhdr *)bprm->buf;
0693ffebcfe5ac7 Alexey Dobriyan 2020-04-06 850 struct elfhdr *interp_elf_ex = NULL;
774c105ed8d791b Paul Burton 2014-09-11 851 struct arch_elf_state arch_state = INIT_ARCH_ELF_STATE;
03c6d723eeac2d7 Alexey Dobriyan 2020-01-30 852 struct mm_struct *mm;
249b08e4e504d4c Alexey Dobriyan 2019-05-14 853 struct pt_regs *regs;
^1da177e4c3f415 Linus Torvalds 2005-04-16 854
^1da177e4c3f415 Linus Torvalds 2005-04-16 855 retval = -ENOEXEC;
^1da177e4c3f415 Linus Torvalds 2005-04-16 856 /* First of all, some simple consistency checks */
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 857 if (memcmp(elf_ex->e_ident, ELFMAG, SELFMAG) != 0)
^1da177e4c3f415 Linus Torvalds 2005-04-16 858 goto out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 859
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 860 if (elf_ex->e_type != ET_EXEC && elf_ex->e_type != ET_DYN)
^1da177e4c3f415 Linus Torvalds 2005-04-16 861 goto out;
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 862 if (!elf_check_arch(elf_ex))
^1da177e4c3f415 Linus Torvalds 2005-04-16 863 goto out;
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 864 if (elf_check_fdpic(elf_ex))
4755200b6b116db Nicolas Pitre 2017-08-16 865 goto out;
b013ed403197f3f Lorenzo Stoakes 2025-06-16 866 if (!can_mmap_file(bprm->file))
^1da177e4c3f415 Linus Torvalds 2005-04-16 867 goto out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 868
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 869 elf_phdata = load_elf_phdrs(elf_ex, bprm->file);
^1da177e4c3f415 Linus Torvalds 2005-04-16 870 if (!elf_phdata)
^1da177e4c3f415 Linus Torvalds 2005-04-16 871 goto out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 872
^1da177e4c3f415 Linus Torvalds 2005-04-16 873 elf_ppnt = elf_phdata;
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 874 for (i = 0; i < elf_ex->e_phnum; i++, elf_ppnt++) {
cc338010a233c08 Alexey Dobriyan 2019-05-14 875 char *elf_interpreter;
5cf4a36382588e6 Alexey Dobriyan 2019-05-14 876
00e19ceec80b03a Dave Martin 2020-03-16 877 if (elf_ppnt->p_type == PT_GNU_PROPERTY) {
00e19ceec80b03a Dave Martin 2020-03-16 878 elf_property_phdata = elf_ppnt;
00e19ceec80b03a Dave Martin 2020-03-16 879 continue;
00e19ceec80b03a Dave Martin 2020-03-16 880 }
00e19ceec80b03a Dave Martin 2020-03-16 881
be0deb585e4c51d Alexey Dobriyan 2019-05-14 882 if (elf_ppnt->p_type != PT_INTERP)
be0deb585e4c51d Alexey Dobriyan 2019-05-14 883 continue;
be0deb585e4c51d Alexey Dobriyan 2019-05-14 884
be0deb585e4c51d Alexey Dobriyan 2019-05-14 885 /*
be0deb585e4c51d Alexey Dobriyan 2019-05-14 886 * This is the program interpreter used for shared libraries -
be0deb585e4c51d Alexey Dobriyan 2019-05-14 887 * for now assume that this is an a.out format binary.
^1da177e4c3f415 Linus Torvalds 2005-04-16 888 */
^1da177e4c3f415 Linus Torvalds 2005-04-16 889 retval = -ENOEXEC;
be0deb585e4c51d Alexey Dobriyan 2019-05-14 890 if (elf_ppnt->p_filesz > PATH_MAX || elf_ppnt->p_filesz < 2)
e7b9b550f53e81e Al Viro 2009-03-29 891 goto out_free_ph;
^1da177e4c3f415 Linus Torvalds 2005-04-16 892
^1da177e4c3f415 Linus Torvalds 2005-04-16 893 retval = -ENOMEM;
be0deb585e4c51d Alexey Dobriyan 2019-05-14 894 elf_interpreter = kmalloc(elf_ppnt->p_filesz, GFP_KERNEL);
^1da177e4c3f415 Linus Torvalds 2005-04-16 895 if (!elf_interpreter)
e7b9b550f53e81e Al Viro 2009-03-29 896 goto out_free_ph;
^1da177e4c3f415 Linus Torvalds 2005-04-16 897
658c03356511854 Alexey Dobriyan 2019-12-04 898 retval = elf_read(bprm->file, elf_interpreter, elf_ppnt->p_filesz,
658c03356511854 Alexey Dobriyan 2019-12-04 899 elf_ppnt->p_offset);
658c03356511854 Alexey Dobriyan 2019-12-04 900 if (retval < 0)
^1da177e4c3f415 Linus Torvalds 2005-04-16 901 goto out_free_interp;
^1da177e4c3f415 Linus Torvalds 2005-04-16 902 /* make sure path is NULL terminated */
^1da177e4c3f415 Linus Torvalds 2005-04-16 903 retval = -ENOEXEC;
^1da177e4c3f415 Linus Torvalds 2005-04-16 904 if (elf_interpreter[elf_ppnt->p_filesz - 1] != '\0')
^1da177e4c3f415 Linus Torvalds 2005-04-16 905 goto out_free_interp;
^1da177e4c3f415 Linus Torvalds 2005-04-16 906
^1da177e4c3f415 Linus Torvalds 2005-04-16 907 interpreter = open_exec(elf_interpreter);
cc338010a233c08 Alexey Dobriyan 2019-05-14 908 kfree(elf_interpreter);
^1da177e4c3f415 Linus Torvalds 2005-04-16 909 retval = PTR_ERR(interpreter);
^1da177e4c3f415 Linus Torvalds 2005-04-16 910 if (IS_ERR(interpreter))
cc338010a233c08 Alexey Dobriyan 2019-05-14 911 goto out_free_ph;
1fb844961818ce9 Alexey Dobriyan 2007-01-26 912
1fb844961818ce9 Alexey Dobriyan 2007-01-26 913 /*
be0deb585e4c51d Alexey Dobriyan 2019-05-14 914 * If the binary is not readable then enforce mm->dumpable = 0
be0deb585e4c51d Alexey Dobriyan 2019-05-14 915 * regardless of the interpreter's permissions.
1fb844961818ce9 Alexey Dobriyan 2007-01-26 916 */
1b5d783c94c328d Al Viro 2011-06-19 917 would_dump(bprm, interpreter);
1fb844961818ce9 Alexey Dobriyan 2007-01-26 918
bf4afc53b77aeaa Linus Torvalds 2026-02-21 919 interp_elf_ex = kmalloc_obj(*interp_elf_ex);
0693ffebcfe5ac7 Alexey Dobriyan 2020-04-06 920 if (!interp_elf_ex) {
0693ffebcfe5ac7 Alexey Dobriyan 2020-04-06 921 retval = -ENOMEM;
594d2a14f2168c0 Li Zetao 2022-10-24 922 goto out_free_file;
0693ffebcfe5ac7 Alexey Dobriyan 2020-04-06 923 }
0693ffebcfe5ac7 Alexey Dobriyan 2020-04-06 924
b582ef5c53040c5 Maciej W. Rozycki 2015-10-26 925 /* Get the exec headers */
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 926 retval = elf_read(interpreter, interp_elf_ex,
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 927 sizeof(*interp_elf_ex), 0);
658c03356511854 Alexey Dobriyan 2019-12-04 928 if (retval < 0)
^1da177e4c3f415 Linus Torvalds 2005-04-16 929 goto out_free_dentry;
^1da177e4c3f415 Linus Torvalds 2005-04-16 930
^1da177e4c3f415 Linus Torvalds 2005-04-16 931 break;
cc338010a233c08 Alexey Dobriyan 2019-05-14 932
cc338010a233c08 Alexey Dobriyan 2019-05-14 933 out_free_interp:
cc338010a233c08 Alexey Dobriyan 2019-05-14 934 kfree(elf_interpreter);
cc338010a233c08 Alexey Dobriyan 2019-05-14 935 goto out_free_ph;
^1da177e4c3f415 Linus Torvalds 2005-04-16 936 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 937
^1da177e4c3f415 Linus Torvalds 2005-04-16 938 elf_ppnt = elf_phdata;
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 939 for (i = 0; i < elf_ex->e_phnum; i++, elf_ppnt++)
774c105ed8d791b Paul Burton 2014-09-11 940 switch (elf_ppnt->p_type) {
774c105ed8d791b Paul Burton 2014-09-11 941 case PT_GNU_STACK:
^1da177e4c3f415 Linus Torvalds 2005-04-16 942 if (elf_ppnt->p_flags & PF_X)
^1da177e4c3f415 Linus Torvalds 2005-04-16 943 executable_stack = EXSTACK_ENABLE_X;
^1da177e4c3f415 Linus Torvalds 2005-04-16 944 else
^1da177e4c3f415 Linus Torvalds 2005-04-16 945 executable_stack = EXSTACK_DISABLE_X;
^1da177e4c3f415 Linus Torvalds 2005-04-16 946 break;
774c105ed8d791b Paul Burton 2014-09-11 947
774c105ed8d791b Paul Burton 2014-09-11 948 case PT_LOPROC ... PT_HIPROC:
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 949 retval = arch_elf_pt_proc(elf_ex, elf_ppnt,
774c105ed8d791b Paul Burton 2014-09-11 950 bprm->file, false,
774c105ed8d791b Paul Burton 2014-09-11 951 &arch_state);
774c105ed8d791b Paul Burton 2014-09-11 952 if (retval)
774c105ed8d791b Paul Burton 2014-09-11 953 goto out_free_dentry;
774c105ed8d791b Paul Burton 2014-09-11 954 break;
^1da177e4c3f415 Linus Torvalds 2005-04-16 955 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 956
^1da177e4c3f415 Linus Torvalds 2005-04-16 957 /* Some simple consistency checks for the interpreter */
cc338010a233c08 Alexey Dobriyan 2019-05-14 958 if (interpreter) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 959 retval = -ELIBBAD;
d20894a23708c2a Andi Kleen 2008-02-08 960 /* Not an ELF interpreter */
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 961 if (memcmp(interp_elf_ex->e_ident, ELFMAG, SELFMAG) != 0)
^1da177e4c3f415 Linus Torvalds 2005-04-16 962 goto out_free_dentry;
^1da177e4c3f415 Linus Torvalds 2005-04-16 963 /* Verify the interpreter has a valid arch */
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 964 if (!elf_check_arch(interp_elf_ex) ||
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 965 elf_check_fdpic(interp_elf_ex))
^1da177e4c3f415 Linus Torvalds 2005-04-16 966 goto out_free_dentry;
a9d9ef133f443ae Paul Burton 2014-09-11 967
a9d9ef133f443ae Paul Burton 2014-09-11 968 /* Load the interpreter program headers */
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 969 interp_elf_phdata = load_elf_phdrs(interp_elf_ex,
a9d9ef133f443ae Paul Burton 2014-09-11 970 interpreter);
a9d9ef133f443ae Paul Burton 2014-09-11 971 if (!interp_elf_phdata)
a9d9ef133f443ae Paul Burton 2014-09-11 972 goto out_free_dentry;
774c105ed8d791b Paul Burton 2014-09-11 973
774c105ed8d791b Paul Burton 2014-09-11 974 /* Pass PT_LOPROC..PT_HIPROC headers to arch code */
00e19ceec80b03a Dave Martin 2020-03-16 975 elf_property_phdata = NULL;
774c105ed8d791b Paul Burton 2014-09-11 976 elf_ppnt = interp_elf_phdata;
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 977 for (i = 0; i < interp_elf_ex->e_phnum; i++, elf_ppnt++)
774c105ed8d791b Paul Burton 2014-09-11 978 switch (elf_ppnt->p_type) {
00e19ceec80b03a Dave Martin 2020-03-16 979 case PT_GNU_PROPERTY:
00e19ceec80b03a Dave Martin 2020-03-16 980 elf_property_phdata = elf_ppnt;
00e19ceec80b03a Dave Martin 2020-03-16 981 break;
00e19ceec80b03a Dave Martin 2020-03-16 982
774c105ed8d791b Paul Burton 2014-09-11 983 case PT_LOPROC ... PT_HIPROC:
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 984 retval = arch_elf_pt_proc(interp_elf_ex,
774c105ed8d791b Paul Burton 2014-09-11 985 elf_ppnt, interpreter,
774c105ed8d791b Paul Burton 2014-09-11 986 true, &arch_state);
774c105ed8d791b Paul Burton 2014-09-11 987 if (retval)
774c105ed8d791b Paul Burton 2014-09-11 988 goto out_free_dentry;
774c105ed8d791b Paul Burton 2014-09-11 989 break;
^1da177e4c3f415 Linus Torvalds 2005-04-16 990 }
774c105ed8d791b Paul Burton 2014-09-11 991 }
774c105ed8d791b Paul Burton 2014-09-11 992
00e19ceec80b03a Dave Martin 2020-03-16 993 retval = parse_elf_properties(interpreter ?: bprm->file,
00e19ceec80b03a Dave Martin 2020-03-16 994 elf_property_phdata, &arch_state);
00e19ceec80b03a Dave Martin 2020-03-16 995 if (retval)
00e19ceec80b03a Dave Martin 2020-03-16 996 goto out_free_dentry;
00e19ceec80b03a Dave Martin 2020-03-16 997
774c105ed8d791b Paul Burton 2014-09-11 998 /*
774c105ed8d791b Paul Burton 2014-09-11 999 * Allow arch code to reject the ELF at this point, whilst it's
774c105ed8d791b Paul Burton 2014-09-11 1000 * still possible to return an error to the code that invoked
774c105ed8d791b Paul Burton 2014-09-11 1001 * the exec syscall.
774c105ed8d791b Paul Burton 2014-09-11 1002 */
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 1003 retval = arch_check_elf(elf_ex,
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 1004 !!interpreter, interp_elf_ex,
eb4bc076ff94b82 Maciej W. Rozycki 2015-11-13 1005 &arch_state);
774c105ed8d791b Paul Burton 2014-09-11 1006 if (retval)
774c105ed8d791b Paul Burton 2014-09-11 1007 goto out_free_dentry;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1008
^1da177e4c3f415 Linus Torvalds 2005-04-16 1009 /* Flush all traces of the currently running executable */
2388777a0a5957a Eric W. Biederman 2020-05-03 1010 retval = begin_new_exec(bprm);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1011 if (retval)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1012 goto out_free_dentry;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1013
^1da177e4c3f415 Linus Torvalds 2005-04-16 1014 /* Do this immediately, since STACK_TOP as used in setup_arg_pages
^1da177e4c3f415 Linus Torvalds 2005-04-16 1015 may depend on the personality. */
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 1016 SET_PERSONALITY2(*elf_ex, &arch_state);
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 1017 if (elf_read_implies_exec(*elf_ex, executable_stack))
^1da177e4c3f415 Linus Torvalds 2005-04-16 1018 current->personality |= READ_IMPLIES_EXEC;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1019
2a97388a807b6ab Alexey Dobriyan 2024-06-21 1020 const int snapshot_randomize_va_space = READ_ONCE(randomize_va_space);
2a97388a807b6ab Alexey Dobriyan 2024-06-21 1021 if (!(current->personality & ADDR_NO_RANDOMIZE) && snapshot_randomize_va_space)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1022 current->flags |= PF_RANDOMIZE;
221af7f87b97431 Linus Torvalds 2010-01-28 1023
221af7f87b97431 Linus Torvalds 2010-01-28 1024 setup_new_exec(bprm);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1025
^1da177e4c3f415 Linus Torvalds 2005-04-16 1026 /* Do this so that we can load the interpreter, if need be. We will
^1da177e4c3f415 Linus Torvalds 2005-04-16 1027 change some of these later */
^1da177e4c3f415 Linus Torvalds 2005-04-16 1028 retval = setup_arg_pages(bprm, randomize_stack_top(STACK_TOP),
^1da177e4c3f415 Linus Torvalds 2005-04-16 1029 executable_stack);
19d860a140beac4 Al Viro 2014-05-04 1030 if (retval < 0)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1031 goto out_free_dentry;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1032
852643165aea099 Alexey Dobriyan 2019-05-14 1033 elf_brk = 0;
852643165aea099 Alexey Dobriyan 2019-05-14 1034
852643165aea099 Alexey Dobriyan 2019-05-14 1035 start_code = ~0UL;
852643165aea099 Alexey Dobriyan 2019-05-14 1036 end_code = 0;
852643165aea099 Alexey Dobriyan 2019-05-14 1037 start_data = 0;
852643165aea099 Alexey Dobriyan 2019-05-14 1038 end_data = 0;
852643165aea099 Alexey Dobriyan 2019-05-14 1039
af901ca181d92aa André Goddard Rosa 2009-11-14 1040 /* Now we do a little grungy work by mmapping the ELF image into
cc503c1b43e002e Jiri Kosina 2008-01-30 1041 the correct location in memory. */
f4e5cc2c44bf760 Jesper Juhl 2006-06-23 1042 for(i = 0, elf_ppnt = elf_phdata;
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 1043 i < elf_ex->e_phnum; i++, elf_ppnt++) {
b212921b13bda08 Linus Torvalds 2019-10-06 1044 int elf_prot, elf_flags;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1045 unsigned long k, vaddr;
a87938b2e246b81 Michael Davidson 2015-04-14 1046 unsigned long total_size = 0;
ce81bb256a22425 Chris Kennelly 2020-10-15 1047 unsigned long alignment;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1048
^1da177e4c3f415 Linus Torvalds 2005-04-16 1049 if (elf_ppnt->p_type != PT_LOAD)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1050 continue;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1051
fe0f67660ee9c99 Dave Martin 2020-03-16 1052 elf_prot = make_prot(elf_ppnt->p_flags, &arch_state,
fe0f67660ee9c99 Dave Martin 2020-03-16 1053 !!interpreter, false);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1054
4589ff7ca815163 David Hildenbrand 2021-04-23 1055 elf_flags = MAP_PRIVATE;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1056
^1da177e4c3f415 Linus Torvalds 2005-04-16 1057 vaddr = elf_ppnt->p_vaddr;
eab09532d400906 Kees Cook 2017-07-10 1058 /*
2b4bfbe0967697c Akira Kawata 2022-01-27 1059 * The first time through the loop, first_pt_load is true:
5f501d555653f89 Kees Cook 2021-11-08 1060 * layout will be calculated. Once set, use MAP_FIXED since
5f501d555653f89 Kees Cook 2021-11-08 1061 * we know we've already safely mapped the entire region with
5f501d555653f89 Kees Cook 2021-11-08 1062 * MAP_FIXED_NOREPLACE in the once-per-binary logic following.
eab09532d400906 Kees Cook 2017-07-10 1063 */
2b4bfbe0967697c Akira Kawata 2022-01-27 1064 if (!first_pt_load) {
b212921b13bda08 Linus Torvalds 2019-10-06 1065 elf_flags |= MAP_FIXED;
5f501d555653f89 Kees Cook 2021-11-08 1066 } else if (elf_ex->e_type == ET_EXEC) {
5f501d555653f89 Kees Cook 2021-11-08 1067 /*
5f501d555653f89 Kees Cook 2021-11-08 1068 * This logic is run once for the first LOAD Program
5f501d555653f89 Kees Cook 2021-11-08 1069 * Header for ET_EXEC binaries. No special handling
5f501d555653f89 Kees Cook 2021-11-08 1070 * is needed.
5f501d555653f89 Kees Cook 2021-11-08 1071 */
5f501d555653f89 Kees Cook 2021-11-08 1072 elf_flags |= MAP_FIXED_NOREPLACE;
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 1073 } else if (elf_ex->e_type == ET_DYN) {
eab09532d400906 Kees Cook 2017-07-10 1074 /*
eab09532d400906 Kees Cook 2017-07-10 1075 * This logic is run once for the first LOAD Program
eab09532d400906 Kees Cook 2017-07-10 1076 * Header for ET_DYN binaries to calculate the
eab09532d400906 Kees Cook 2017-07-10 1077 * randomization (load_bias) for all the LOAD
5f501d555653f89 Kees Cook 2021-11-08 1078 * Program Headers.
2d4cf7b190bbfad Kees Cook 2024-05-08 1079 */
2d4cf7b190bbfad Kees Cook 2024-05-08 1080
2d4cf7b190bbfad Kees Cook 2024-05-08 1081 /*
2d4cf7b190bbfad Kees Cook 2024-05-08 1082 * Calculate the entire size of the ELF mapping
2d4cf7b190bbfad Kees Cook 2024-05-08 1083 * (total_size), used for the initial mapping,
2d4cf7b190bbfad Kees Cook 2024-05-08 1084 * due to load_addr_set which is set to true later
2d4cf7b190bbfad Kees Cook 2024-05-08 1085 * once the initial mapping is performed.
eab09532d400906 Kees Cook 2017-07-10 1086 *
2d4cf7b190bbfad Kees Cook 2024-05-08 1087 * Note that this is only sensible when the LOAD
2d4cf7b190bbfad Kees Cook 2024-05-08 1088 * segments are contiguous (or overlapping). If
2d4cf7b190bbfad Kees Cook 2024-05-08 1089 * used for LOADs that are far apart, this would
2d4cf7b190bbfad Kees Cook 2024-05-08 1090 * cause the holes between LOADs to be mapped,
2d4cf7b190bbfad Kees Cook 2024-05-08 1091 * running the risk of having the mapping fail,
2d4cf7b190bbfad Kees Cook 2024-05-08 1092 * as it would be larger than the ELF file itself.
eab09532d400906 Kees Cook 2017-07-10 1093 *
2d4cf7b190bbfad Kees Cook 2024-05-08 1094 * As a result, only ET_DYN does this, since
2d4cf7b190bbfad Kees Cook 2024-05-08 1095 * some ET_EXEC (e.g. ia64) may have large virtual
2d4cf7b190bbfad Kees Cook 2024-05-08 1096 * memory holes between LOADs.
2d4cf7b190bbfad Kees Cook 2024-05-08 1097 *
2d4cf7b190bbfad Kees Cook 2024-05-08 1098 */
2d4cf7b190bbfad Kees Cook 2024-05-08 1099 total_size = total_mapping_size(elf_phdata,
2d4cf7b190bbfad Kees Cook 2024-05-08 1100 elf_ex->e_phnum);
2d4cf7b190bbfad Kees Cook 2024-05-08 1101 if (!total_size) {
2d4cf7b190bbfad Kees Cook 2024-05-08 1102 retval = -EINVAL;
2d4cf7b190bbfad Kees Cook 2024-05-08 1103 goto out_free_dentry;
2d4cf7b190bbfad Kees Cook 2024-05-08 1104 }
2d4cf7b190bbfad Kees Cook 2024-05-08 1105
3545deff0ec7a37 Kees Cook 2024-05-08 1106 /* Calculate any requested alignment. */
3545deff0ec7a37 Kees Cook 2024-05-08 1107 alignment = maximum_alignment(elf_phdata, elf_ex->e_phnum);
3545deff0ec7a37 Kees Cook 2024-05-08 1108
11854fe263eb1b9 Kees Cook 2025-04-25 1109 /**
11854fe263eb1b9 Kees Cook 2025-04-25 1110 * DOC: PIE handling
11854fe263eb1b9 Kees Cook 2025-04-25 1111 *
11854fe263eb1b9 Kees Cook 2025-04-25 1112 * There are effectively two types of ET_DYN ELF
11854fe263eb1b9 Kees Cook 2025-04-25 1113 * binaries: programs (i.e. PIE: ET_DYN with
11854fe263eb1b9 Kees Cook 2025-04-25 1114 * PT_INTERP) and loaders (i.e. static PIE: ET_DYN
11854fe263eb1b9 Kees Cook 2025-04-25 1115 * without PT_INTERP, usually the ELF interpreter
11854fe263eb1b9 Kees Cook 2025-04-25 1116 * itself). Loaders must be loaded away from programs
11854fe263eb1b9 Kees Cook 2025-04-25 1117 * since the program may otherwise collide with the
11854fe263eb1b9 Kees Cook 2025-04-25 1118 * loader (especially for ET_EXEC which does not have
11854fe263eb1b9 Kees Cook 2025-04-25 1119 * a randomized position).
11854fe263eb1b9 Kees Cook 2025-04-25 1120 *
11854fe263eb1b9 Kees Cook 2025-04-25 1121 * For example, to handle invocations of
eab09532d400906 Kees Cook 2017-07-10 1122 * "./ld.so someprog" to test out a new version of
eab09532d400906 Kees Cook 2017-07-10 1123 * the loader, the subsequent program that the
eab09532d400906 Kees Cook 2017-07-10 1124 * loader loads must avoid the loader itself, so
eab09532d400906 Kees Cook 2017-07-10 1125 * they cannot share the same load range. Sufficient
eab09532d400906 Kees Cook 2017-07-10 1126 * room for the brk must be allocated with the
eab09532d400906 Kees Cook 2017-07-10 1127 * loader as well, since brk must be available with
eab09532d400906 Kees Cook 2017-07-10 1128 * the loader.
eab09532d400906 Kees Cook 2017-07-10 1129 *
eab09532d400906 Kees Cook 2017-07-10 1130 * Therefore, programs are loaded offset from
eab09532d400906 Kees Cook 2017-07-10 1131 * ELF_ET_DYN_BASE and loaders are loaded into the
eab09532d400906 Kees Cook 2017-07-10 1132 * independently randomized mmap region (0 load_bias
5f501d555653f89 Kees Cook 2021-11-08 1133 * without MAP_FIXED nor MAP_FIXED_NOREPLACE).
11854fe263eb1b9 Kees Cook 2025-04-25 1134 *
11854fe263eb1b9 Kees Cook 2025-04-25 1135 * See below for "brk" handling details, which is
11854fe263eb1b9 Kees Cook 2025-04-25 1136 * also affected by program vs loader and ASLR.
eab09532d400906 Kees Cook 2017-07-10 1137 */
aeb7923733d100b Andrew Morton 2022-04-14 1138 if (interpreter) {
3545deff0ec7a37 Kees Cook 2024-05-08 1139 /* On ET_DYN with PT_INTERP, we do the ASLR. */
eab09532d400906 Kees Cook 2017-07-10 @1140 load_bias = ELF_ET_DYN_BASE;
a3defbe5c337dbc Jiri Kosina 2011-11-02 1141 if (current->flags & PF_RANDOMIZE)
d1fd836dcf00d20 Kees Cook 2015-04-14 1142 load_bias += arch_mmap_rnd();
3545deff0ec7a37 Kees Cook 2024-05-08 1143 /* Adjust alignment as requested. */
3545deff0ec7a37 Kees Cook 2024-05-08 1144 if (alignment)
3545deff0ec7a37 Kees Cook 2024-05-08 1145 load_bias &= ~(alignment - 1);
3545deff0ec7a37 Kees Cook 2024-05-08 1146 elf_flags |= MAP_FIXED_NOREPLACE;
3545deff0ec7a37 Kees Cook 2024-05-08 1147 } else {
3545deff0ec7a37 Kees Cook 2024-05-08 1148 /*
3545deff0ec7a37 Kees Cook 2024-05-08 1149 * For ET_DYN without PT_INTERP, we rely on
3545deff0ec7a37 Kees Cook 2024-05-08 1150 * the architectures's (potentially ASLR) mmap
3545deff0ec7a37 Kees Cook 2024-05-08 1151 * base address (via a load_bias of 0).
3545deff0ec7a37 Kees Cook 2024-05-08 1152 *
3545deff0ec7a37 Kees Cook 2024-05-08 1153 * When a large alignment is requested, we
3545deff0ec7a37 Kees Cook 2024-05-08 1154 * must do the allocation at address "0" right
3545deff0ec7a37 Kees Cook 2024-05-08 1155 * now to discover where things will load so
3545deff0ec7a37 Kees Cook 2024-05-08 1156 * that we can adjust the resulting alignment.
3545deff0ec7a37 Kees Cook 2024-05-08 1157 * In this case (load_bias != 0), we can use
3545deff0ec7a37 Kees Cook 2024-05-08 1158 * MAP_FIXED_NOREPLACE to make sure the mapping
3545deff0ec7a37 Kees Cook 2024-05-08 1159 * doesn't collide with anything.
3545deff0ec7a37 Kees Cook 2024-05-08 1160 */
3545deff0ec7a37 Kees Cook 2024-05-08 1161 if (alignment > ELF_MIN_ALIGN) {
3545deff0ec7a37 Kees Cook 2024-05-08 1162 load_bias = elf_load(bprm->file, 0, elf_ppnt,
3545deff0ec7a37 Kees Cook 2024-05-08 1163 elf_prot, elf_flags, total_size);
3545deff0ec7a37 Kees Cook 2024-05-08 1164 if (BAD_ADDR(load_bias)) {
3545deff0ec7a37 Kees Cook 2024-05-08 1165 retval = IS_ERR_VALUE(load_bias) ?
3545deff0ec7a37 Kees Cook 2024-05-08 1166 PTR_ERR((void*)load_bias) : -EINVAL;
3545deff0ec7a37 Kees Cook 2024-05-08 1167 goto out_free_dentry;
3545deff0ec7a37 Kees Cook 2024-05-08 1168 }
3545deff0ec7a37 Kees Cook 2024-05-08 1169 vm_munmap(load_bias, total_size);
3545deff0ec7a37 Kees Cook 2024-05-08 1170 /* Adjust alignment as requested. */
ce81bb256a22425 Chris Kennelly 2020-10-15 1171 if (alignment)
ce81bb256a22425 Chris Kennelly 2020-10-15 1172 load_bias &= ~(alignment - 1);
5f501d555653f89 Kees Cook 2021-11-08 1173 elf_flags |= MAP_FIXED_NOREPLACE;
eab09532d400906 Kees Cook 2017-07-10 1174 } else
eab09532d400906 Kees Cook 2017-07-10 1175 load_bias = 0;
3545deff0ec7a37 Kees Cook 2024-05-08 1176 }
eab09532d400906 Kees Cook 2017-07-10 1177
eab09532d400906 Kees Cook 2017-07-10 1178 /*
eab09532d400906 Kees Cook 2017-07-10 1179 * Since load_bias is used for all subsequent loading
eab09532d400906 Kees Cook 2017-07-10 1180 * calculations, we must lower it by the first vaddr
eab09532d400906 Kees Cook 2017-07-10 1181 * so that the remaining calculations based on the
eab09532d400906 Kees Cook 2017-07-10 1182 * ELF vaddrs will be correctly offset. The result
eab09532d400906 Kees Cook 2017-07-10 1183 * is then page aligned.
eab09532d400906 Kees Cook 2017-07-10 1184 */
eab09532d400906 Kees Cook 2017-07-10 1185 load_bias = ELF_PAGESTART(load_bias - vaddr);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1186 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1187
585a018627b4d7e Eric W. Biederman 2023-09-28 1188 error = elf_load(bprm->file, load_bias + vaddr, elf_ppnt,
a87938b2e246b81 Michael Davidson 2015-04-14 1189 elf_prot, elf_flags, total_size);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1190 if (BAD_ADDR(error)) {
dc64cc12bcd1421 Bo Liu 2022-11-14 1191 retval = IS_ERR_VALUE(error) ?
b140f25108a8b11 Alexey Kuznetsov 2007-05-08 1192 PTR_ERR((void*)error) : -EINVAL;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1193 goto out_free_dentry;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1194 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1195
2b4bfbe0967697c Akira Kawata 2022-01-27 1196 if (first_pt_load) {
2b4bfbe0967697c Akira Kawata 2022-01-27 1197 first_pt_load = 0;
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 1198 if (elf_ex->e_type == ET_DYN) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 1199 load_bias += error -
^1da177e4c3f415 Linus Torvalds 2005-04-16 1200 ELF_PAGESTART(load_bias + vaddr);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1201 reloc_func_desc = load_bias;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1202 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1203 }
0da1d5002745cdc Akira Kawata 2022-01-27 1204
0da1d5002745cdc Akira Kawata 2022-01-27 1205 /*
0da1d5002745cdc Akira Kawata 2022-01-27 1206 * Figure out which segment in the file contains the Program
0da1d5002745cdc Akira Kawata 2022-01-27 1207 * Header table, and map to the associated memory address.
0da1d5002745cdc Akira Kawata 2022-01-27 1208 */
0da1d5002745cdc Akira Kawata 2022-01-27 1209 if (elf_ppnt->p_offset <= elf_ex->e_phoff &&
0da1d5002745cdc Akira Kawata 2022-01-27 1210 elf_ex->e_phoff < elf_ppnt->p_offset + elf_ppnt->p_filesz) {
0da1d5002745cdc Akira Kawata 2022-01-27 1211 phdr_addr = elf_ex->e_phoff - elf_ppnt->p_offset +
0da1d5002745cdc Akira Kawata 2022-01-27 1212 elf_ppnt->p_vaddr;
0da1d5002745cdc Akira Kawata 2022-01-27 1213 }
0da1d5002745cdc Akira Kawata 2022-01-27 1214
^1da177e4c3f415 Linus Torvalds 2005-04-16 1215 k = elf_ppnt->p_vaddr;
f67ef446291a091 Alexey Dobriyan 2020-01-30 1216 if ((elf_ppnt->p_flags & PF_X) && k < start_code)
f4e5cc2c44bf760 Jesper Juhl 2006-06-23 1217 start_code = k;
f4e5cc2c44bf760 Jesper Juhl 2006-06-23 1218 if (start_data < k)
f4e5cc2c44bf760 Jesper Juhl 2006-06-23 1219 start_data = k;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1220
^1da177e4c3f415 Linus Torvalds 2005-04-16 1221 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 1222 * Check to see if the section's size will overflow the
^1da177e4c3f415 Linus Torvalds 2005-04-16 1223 * allowed task size. Note that p_filesz must always be
^1da177e4c3f415 Linus Torvalds 2005-04-16 1224 * <= p_memsz so it is only necessary to check p_memsz.
^1da177e4c3f415 Linus Torvalds 2005-04-16 1225 */
ce51059be56f637 Chuck Ebbert 2006-07-03 1226 if (BAD_ADDR(k) || elf_ppnt->p_filesz > elf_ppnt->p_memsz ||
^1da177e4c3f415 Linus Torvalds 2005-04-16 1227 elf_ppnt->p_memsz > TASK_SIZE ||
^1da177e4c3f415 Linus Torvalds 2005-04-16 1228 TASK_SIZE - elf_ppnt->p_memsz < k) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 1229 /* set_brk can never work. Avoid overflows. */
b140f25108a8b11 Alexey Kuznetsov 2007-05-08 1230 retval = -EINVAL;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1231 goto out_free_dentry;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1232 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1233
^1da177e4c3f415 Linus Torvalds 2005-04-16 1234 k = elf_ppnt->p_vaddr + elf_ppnt->p_filesz;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1235
^1da177e4c3f415 Linus Torvalds 2005-04-16 1236 if ((elf_ppnt->p_flags & PF_X) && end_code < k)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1237 end_code = k;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1238 if (end_data < k)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1239 end_data = k;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1240 k = elf_ppnt->p_vaddr + elf_ppnt->p_memsz;
585a018627b4d7e Eric W. Biederman 2023-09-28 1241 if (k > elf_brk)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1242 elf_brk = k;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1243 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1244
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 1245 e_entry = elf_ex->e_entry + load_bias;
0da1d5002745cdc Akira Kawata 2022-01-27 1246 phdr_addr += load_bias;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1247 elf_brk += load_bias;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1248 start_code += load_bias;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1249 end_code += load_bias;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1250 start_data += load_bias;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1251 end_data += load_bias;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1252
cc338010a233c08 Alexey Dobriyan 2019-05-14 1253 if (interpreter) {
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 1254 elf_entry = load_elf_interp(interp_elf_ex,
^1da177e4c3f415 Linus Torvalds 2005-04-16 1255 interpreter,
fe0f67660ee9c99 Dave Martin 2020-03-16 1256 load_bias, interp_elf_phdata,
fe0f67660ee9c99 Dave Martin 2020-03-16 1257 &arch_state);
dc64cc12bcd1421 Bo Liu 2022-11-14 1258 if (!IS_ERR_VALUE(elf_entry)) {
cc503c1b43e002e Jiri Kosina 2008-01-30 1259 /*
cc503c1b43e002e Jiri Kosina 2008-01-30 1260 * load_elf_interp() returns relocation
cc503c1b43e002e Jiri Kosina 2008-01-30 1261 * adjustment
cc503c1b43e002e Jiri Kosina 2008-01-30 1262 */
cc503c1b43e002e Jiri Kosina 2008-01-30 1263 interp_load_addr = elf_entry;
c69bcc932ef3568 Alexey Dobriyan 2020-04-06 1264 elf_entry += interp_elf_ex->e_entry;
cc503c1b43e002e Jiri Kosina 2008-01-30 1265 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1266 if (BAD_ADDR(elf_entry)) {
dc64cc12bcd1421 Bo Liu 2022-11-14 1267 retval = IS_ERR_VALUE(elf_entry) ?
ce51059be56f637 Chuck Ebbert 2006-07-03 1268 (int)elf_entry : -EINVAL;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1269 goto out_free_dentry;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1270 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1271 reloc_func_desc = interp_load_addr;
^1da177e4c3f415 Linus Torvalds 2005-04-16 1272
0357ef03c94ef83 Amir Goldstein 2024-11-28 1273 exe_file_allow_write_access(interpreter);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1274 fput(interpreter);
0693ffebcfe5ac7 Alexey Dobriyan 2020-04-06 1275
0693ffebcfe5ac7 Alexey Dobriyan 2020-04-06 1276 kfree(interp_elf_ex);
aa0d1564b10f916 Alexey Dobriyan 2020-04-06 1277 kfree(interp_elf_phdata);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1278 } else {
a62c5b1b6647ea0 Alexey Dobriyan 2020-01-30 1279 elf_entry = e_entry;
5342fba5412cead Suresh Siddha 2006-02-26 1280 if (BAD_ADDR(elf_entry)) {
ce51059be56f637 Chuck Ebbert 2006-07-03 1281 retval = -EINVAL;
5342fba5412cead Suresh Siddha 2006-02-26 1282 goto out_free_dentry;
5342fba5412cead Suresh Siddha 2006-02-26 1283 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1284 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1285
^1da177e4c3f415 Linus Torvalds 2005-04-16 1286 kfree(elf_phdata);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1287
^1da177e4c3f415 Linus Torvalds 2005-04-16 1288 set_binfmt(&elf_format);
^1da177e4c3f415 Linus Torvalds 2005-04-16 1289
:::::: The code at line 1140 was first introduced by commit
:::::: eab09532d40090698b05a07c1c87f39fdbc5fab5 binfmt_elf: use ELF_ET_DYN_BASE only for PIE
:::::: TO: Kees Cook <keescook@chromium.org>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2026-03-07 12:21 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-07 12:21 kernel test robot [this message]
2026-03-08 21:19 ` [akpm-mm:mm-unstable 34/207] fs/binfmt_elf.c:1140:17: warning: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 4294967296 to 0 Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202603072018.Dl1xONhs-lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=jianhuizzzzz@gmail.com \
--cc=linux-mm@kvack.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.