[PATCH v4 6/6] module: Move duplicate mod_check_sig users code to mod_parse_sig

kernel test robot lkp at intel.com
Mon Jan 10 11:30:09 PST 2022


Hi Michal,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on s390/features linus/master jeyu/modules-next v5.16 next-20220110]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Michal-Suchanek/KEXEC_SIG-with-appended-signature/20220110-215157
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: arc-allyesconfig (https://download.01.org/0day-ci/archive/20220111/202201110303.sLPF0o29-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 11.2.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/0day-ci/linux/commit/cc363ca7724d96c534c176b8ed248336f562b7ae
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Michal-Suchanek/KEXEC_SIG-with-appended-signature/20220110-215157
        git checkout cc363ca7724d96c534c176b8ed248336f562b7ae
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash

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

All errors (new ones prefixed by >>):

   kernel/module_signing.c: In function 'verify_appended_signature':
>> kernel/module_signing.c:33:35: error: passing argument 2 of 'mod_parse_sig' from incompatible pointer type [-Werror=incompatible-pointer-types]
      33 |         ret = mod_parse_sig(data, len, &sig_len, key_being_used_for[purpose]);
         |                                   ^~~
         |                                   |
         |                                   long unsigned int *
   In file included from kernel/module_signing.c:11:
   include/linux/module_signature.h:45:45: note: expected 'size_t *' {aka 'unsigned int *'} but argument is of type 'long unsigned int *'
      45 | int mod_parse_sig(const void *data, size_t *len, size_t *sig_len, const char *name);
         |                                     ~~~~~~~~^~~
   kernel/module_signing.c:33:40: error: passing argument 3 of 'mod_parse_sig' from incompatible pointer type [-Werror=incompatible-pointer-types]
      33 |         ret = mod_parse_sig(data, len, &sig_len, key_being_used_for[purpose]);
         |                                        ^~~~~~~~
         |                                        |
         |                                        long unsigned int *
   In file included from kernel/module_signing.c:11:
   include/linux/module_signature.h:45:58: note: expected 'size_t *' {aka 'unsigned int *'} but argument is of type 'long unsigned int *'
      45 | int mod_parse_sig(const void *data, size_t *len, size_t *sig_len, const char *name);
         |                                                  ~~~~~~~~^~~~~~~
   cc1: some warnings being treated as errors
--
   security/integrity/ima/ima_modsig.c: In function 'ima_read_modsig':
>> security/integrity/ima/ima_modsig.c:47:33: error: passing argument 2 of 'mod_parse_sig' from incompatible pointer type [-Werror=incompatible-pointer-types]
      47 |         rc = mod_parse_sig(buf, &buf_len, &sig_len, func_tokens[func]);
         |                                 ^~~~~~~~
         |                                 |
         |                                 long unsigned int *
   In file included from security/integrity/ima/ima_modsig.c:12:
   include/linux/module_signature.h:45:45: note: expected 'size_t *' {aka 'unsigned int *'} but argument is of type 'long unsigned int *'
      45 | int mod_parse_sig(const void *data, size_t *len, size_t *sig_len, const char *name);
         |                                     ~~~~~~~~^~~
   security/integrity/ima/ima_modsig.c:47:43: error: passing argument 3 of 'mod_parse_sig' from incompatible pointer type [-Werror=incompatible-pointer-types]
      47 |         rc = mod_parse_sig(buf, &buf_len, &sig_len, func_tokens[func]);
         |                                           ^~~~~~~~
         |                                           |
         |                                           long unsigned int *
   In file included from security/integrity/ima/ima_modsig.c:12:
   include/linux/module_signature.h:45:58: note: expected 'size_t *' {aka 'unsigned int *'} but argument is of type 'long unsigned int *'
      45 | int mod_parse_sig(const void *data, size_t *len, size_t *sig_len, const char *name);
         |                                                  ~~~~~~~~^~~~~~~
   cc1: some warnings being treated as errors


vim +/mod_parse_sig +33 kernel/module_signing.c

    16	
    17	/**
    18	 * verify_appended_signature - Verify the signature on a module
    19	 * @data: The data to be verified
    20	 * @len: Size of @data.
    21	 * @trusted_keys: Keyring to use for verification
    22	 * @purpose: The use to which the key is being put
    23	 */
    24	int verify_appended_signature(const void *data, unsigned long *len,
    25				      struct key *trusted_keys,
    26				      enum key_being_used_for purpose)
    27	{
    28		unsigned long sig_len;
    29		int ret;
    30	
    31		pr_devel("==>%s %s(,%lu)\n", __func__, key_being_used_for[purpose], *len);
    32	
  > 33		ret = mod_parse_sig(data, len, &sig_len, key_being_used_for[purpose]);

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



More information about the kexec mailing list