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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <202106091229.uCfgCAOZ-lkp@intel.com>
Date:   Wed, 9 Jun 2021 12:10:39 +0800
From:   kernel test robot <lkp@...el.com>
To:     Lakshmi Ramasubramanian <nramas@...ux.microsoft.com>
Cc:     kbuild-all@...ts.01.org, clang-built-linux@...glegroups.com,
        linux-kernel@...r.kernel.org, Rob Herring <robh@...nel.org>,
        Prakhar Srivastava <prsriva@...ux.microsoft.com>,
        Thiago Jung Bauermann <bauerman@...ux.ibm.com>
Subject: security/integrity/ima/ima_kexec.c:81:6: warning: no previous
 prototype for function 'ima_add_kexec_buffer'

Hi Lakshmi,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   368094df48e680fa51cedb68537408cfa64b788e
commit: dce92f6b11c3174737bd65eaf933458909b633ff arm64: Enable passing IMA log to next kernel on kexec
date:   3 months ago
config: arm64-randconfig-r004-20210609 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project d2012d965d60c3258b3a69d024491698f8aec386)
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
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dce92f6b11c3174737bd65eaf933458909b633ff
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout dce92f6b11c3174737bd65eaf933458909b633ff
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

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

All warnings (new ones prefixed by >>):

>> security/integrity/ima/ima_kexec.c:81:6: warning: no previous prototype for function 'ima_add_kexec_buffer' [-Wmissing-prototypes]
   void ima_add_kexec_buffer(struct kimage *image)
        ^
   security/integrity/ima/ima_kexec.c:81:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void ima_add_kexec_buffer(struct kimage *image)
   ^
   static 
   1 warning generated.


vim +/ima_add_kexec_buffer +81 security/integrity/ima/ima_kexec.c

7b8589cc29e7c3 Mimi Zohar              2016-12-19   74  
7b8589cc29e7c3 Mimi Zohar              2016-12-19   75  /*
7b8589cc29e7c3 Mimi Zohar              2016-12-19   76   * Called during kexec_file_load so that IMA can add a segment to the kexec
7b8589cc29e7c3 Mimi Zohar              2016-12-19   77   * image for the measurement list for the next kernel.
7b8589cc29e7c3 Mimi Zohar              2016-12-19   78   *
7b8589cc29e7c3 Mimi Zohar              2016-12-19   79   * This function assumes that kexec_mutex is held.
7b8589cc29e7c3 Mimi Zohar              2016-12-19   80   */
7b8589cc29e7c3 Mimi Zohar              2016-12-19  @81  void ima_add_kexec_buffer(struct kimage *image)
7b8589cc29e7c3 Mimi Zohar              2016-12-19   82  {
7b8589cc29e7c3 Mimi Zohar              2016-12-19   83  	struct kexec_buf kbuf = { .image = image, .buf_align = PAGE_SIZE,
7b8589cc29e7c3 Mimi Zohar              2016-12-19   84  				  .buf_min = 0, .buf_max = ULONG_MAX,
7b8589cc29e7c3 Mimi Zohar              2016-12-19   85  				  .top_down = true };
7b8589cc29e7c3 Mimi Zohar              2016-12-19   86  	unsigned long binary_runtime_size;
7b8589cc29e7c3 Mimi Zohar              2016-12-19   87  
7b8589cc29e7c3 Mimi Zohar              2016-12-19   88  	/* use more understandable variable names than defined in kbuf */
7b8589cc29e7c3 Mimi Zohar              2016-12-19   89  	void *kexec_buffer = NULL;
7b8589cc29e7c3 Mimi Zohar              2016-12-19   90  	size_t kexec_buffer_size;
7b8589cc29e7c3 Mimi Zohar              2016-12-19   91  	size_t kexec_segment_size;
7b8589cc29e7c3 Mimi Zohar              2016-12-19   92  	int ret;
7b8589cc29e7c3 Mimi Zohar              2016-12-19   93  
7b8589cc29e7c3 Mimi Zohar              2016-12-19   94  	/*
7b8589cc29e7c3 Mimi Zohar              2016-12-19   95  	 * Reserve an extra half page of memory for additional measurements
7b8589cc29e7c3 Mimi Zohar              2016-12-19   96  	 * added during the kexec load.
7b8589cc29e7c3 Mimi Zohar              2016-12-19   97  	 */
7b8589cc29e7c3 Mimi Zohar              2016-12-19   98  	binary_runtime_size = ima_get_binary_runtime_size();
7b8589cc29e7c3 Mimi Zohar              2016-12-19   99  	if (binary_runtime_size >= ULONG_MAX - PAGE_SIZE)
7b8589cc29e7c3 Mimi Zohar              2016-12-19  100  		kexec_segment_size = ULONG_MAX;
7b8589cc29e7c3 Mimi Zohar              2016-12-19  101  	else
7b8589cc29e7c3 Mimi Zohar              2016-12-19  102  		kexec_segment_size = ALIGN(ima_get_binary_runtime_size() +
7b8589cc29e7c3 Mimi Zohar              2016-12-19  103  					   PAGE_SIZE / 2, PAGE_SIZE);
7b8589cc29e7c3 Mimi Zohar              2016-12-19  104  	if ((kexec_segment_size == ULONG_MAX) ||
ca79b0c211af63 Arun KS                 2018-12-28  105  	    ((kexec_segment_size >> PAGE_SHIFT) > totalram_pages() / 2)) {
7b8589cc29e7c3 Mimi Zohar              2016-12-19  106  		pr_err("Binary measurement list too large.\n");
7b8589cc29e7c3 Mimi Zohar              2016-12-19  107  		return;
7b8589cc29e7c3 Mimi Zohar              2016-12-19  108  	}
7b8589cc29e7c3 Mimi Zohar              2016-12-19  109  
7b8589cc29e7c3 Mimi Zohar              2016-12-19  110  	ima_dump_measurement_list(&kexec_buffer_size, &kexec_buffer,
7b8589cc29e7c3 Mimi Zohar              2016-12-19  111  				  kexec_segment_size);
7b8589cc29e7c3 Mimi Zohar              2016-12-19  112  	if (!kexec_buffer) {
7b8589cc29e7c3 Mimi Zohar              2016-12-19  113  		pr_err("Not enough memory for the kexec measurement buffer.\n");
7b8589cc29e7c3 Mimi Zohar              2016-12-19  114  		return;
7b8589cc29e7c3 Mimi Zohar              2016-12-19  115  	}
7b8589cc29e7c3 Mimi Zohar              2016-12-19  116  
7b8589cc29e7c3 Mimi Zohar              2016-12-19  117  	kbuf.buffer = kexec_buffer;
7b8589cc29e7c3 Mimi Zohar              2016-12-19  118  	kbuf.bufsz = kexec_buffer_size;
7b8589cc29e7c3 Mimi Zohar              2016-12-19  119  	kbuf.memsz = kexec_segment_size;
7b8589cc29e7c3 Mimi Zohar              2016-12-19  120  	ret = kexec_add_buffer(&kbuf);
7b8589cc29e7c3 Mimi Zohar              2016-12-19  121  	if (ret) {
7b8589cc29e7c3 Mimi Zohar              2016-12-19  122  		pr_err("Error passing over kexec measurement buffer.\n");
6d14c6517885fa Lakshmi Ramasubramanian 2021-02-04  123  		vfree(kexec_buffer);
7b8589cc29e7c3 Mimi Zohar              2016-12-19  124  		return;
7b8589cc29e7c3 Mimi Zohar              2016-12-19  125  	}
7b8589cc29e7c3 Mimi Zohar              2016-12-19  126  
0c605158be3210 Lakshmi Ramasubramanian 2021-02-21  127  	image->ima_buffer_addr = kbuf.mem;
0c605158be3210 Lakshmi Ramasubramanian 2021-02-21  128  	image->ima_buffer_size = kexec_segment_size;
f31e3386a4e92b Lakshmi Ramasubramanian 2021-02-04  129  	image->ima_buffer = kexec_buffer;
f31e3386a4e92b Lakshmi Ramasubramanian 2021-02-04  130  
7b8589cc29e7c3 Mimi Zohar              2016-12-19  131  	pr_debug("kexec measurement buffer for the loaded kernel at 0x%lx.\n",
7b8589cc29e7c3 Mimi Zohar              2016-12-19  132  		 kbuf.mem);
7b8589cc29e7c3 Mimi Zohar              2016-12-19  133  }
7b8589cc29e7c3 Mimi Zohar              2016-12-19  134  #endif /* IMA_KEXEC */
7b8589cc29e7c3 Mimi Zohar              2016-12-19  135  

:::::: The code at line 81 was first introduced by commit
:::::: 7b8589cc29e7c35dcfd2d5138979f17b48f90110 ima: on soft reboot, save the measurement list

:::::: TO: Mimi Zohar <zohar@...ux.vnet.ibm.com>
:::::: CC: Linus Torvalds <torvalds@...ux-foundation.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (42572 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ