fs/binfmt_em86.c:73:35: error: passing argument 2 of 'copy_strings_kernel' from incompatible pointer type

From: kbuild test robot
Date: Sat Jun 25 2016 - 21:50:31 EST


Hi,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: da2f6aba4a21f8da3331e5251a117c52764da579
commit: ea8daa7b97842aab8507b5b5b1e3226cf2d514a6 kbuild: Add option to turn incompatible pointer check into error
date: 3 months ago
config: alpha-allmodconfig (attached as .config)
compiler: alpha-linux-gnu-gcc (Debian 5.3.1-8) 5.3.1 20160205
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout ea8daa7b97842aab8507b5b5b1e3226cf2d514a6
# save the attached .config to linux build tree
make.cross ARCH=alpha

All errors (new ones prefixed by >>):

fs/binfmt_em86.c: In function 'load_em86':
>> fs/binfmt_em86.c:73:35: error: passing argument 2 of 'copy_strings_kernel' from incompatible pointer type [-Werror=incompatible-pointer-types]
retval = copy_strings_kernel(1, &i_arg, bprm);
^
In file included from fs/binfmt_em86.c:14:0:
include/linux/binfmts.h:116:12: note: expected 'const char * const*' but argument is of type 'char **'
extern int copy_strings_kernel(int argc, const char *const *argv,
^
fs/binfmt_em86.c:77:34: error: passing argument 2 of 'copy_strings_kernel' from incompatible pointer type [-Werror=incompatible-pointer-types]
retval = copy_strings_kernel(1, &i_name, bprm);
^
In file included from fs/binfmt_em86.c:14:0:
include/linux/binfmts.h:116:12: note: expected 'const char * const*' but argument is of type 'char **'
extern int copy_strings_kernel(int argc, const char *const *argv,
^
fs/binfmt_em86.c:68:2: warning: ignoring return value of 'remove_arg_zero', declared with attribute warn_unused_result [-Wunused-result]
remove_arg_zero(bprm);
^
cc1: some warnings being treated as errors

vim +/copy_strings_kernel +73 fs/binfmt_em86.c

^1da177e Linus Torvalds 2005-04-16 57 i_name = EM86_I_NAME;
^1da177e Linus Torvalds 2005-04-16 58 i_arg = NULL; /* We reserve the right to add an arg later */
^1da177e Linus Torvalds 2005-04-16 59
^1da177e Linus Torvalds 2005-04-16 60 /*
^1da177e Linus Torvalds 2005-04-16 61 * Splice in (1) the interpreter's name for argv[0]
^1da177e Linus Torvalds 2005-04-16 62 * (2) (optional) argument to interpreter
^1da177e Linus Torvalds 2005-04-16 63 * (3) filename of emulated file (replace argv[0])
^1da177e Linus Torvalds 2005-04-16 64 *
^1da177e Linus Torvalds 2005-04-16 65 * This is done in reverse order, because of how the
^1da177e Linus Torvalds 2005-04-16 66 * user environment and arguments are stored.
^1da177e Linus Torvalds 2005-04-16 67 */
^1da177e Linus Torvalds 2005-04-16 68 remove_arg_zero(bprm);
^1da177e Linus Torvalds 2005-04-16 69 retval = copy_strings_kernel(1, &bprm->filename, bprm);
^1da177e Linus Torvalds 2005-04-16 70 if (retval < 0) return retval;
^1da177e Linus Torvalds 2005-04-16 71 bprm->argc++;
^1da177e Linus Torvalds 2005-04-16 72 if (i_arg) {
^1da177e Linus Torvalds 2005-04-16 @73 retval = copy_strings_kernel(1, &i_arg, bprm);
^1da177e Linus Torvalds 2005-04-16 74 if (retval < 0) return retval;
^1da177e Linus Torvalds 2005-04-16 75 bprm->argc++;
^1da177e Linus Torvalds 2005-04-16 76 }
^1da177e Linus Torvalds 2005-04-16 77 retval = copy_strings_kernel(1, &i_name, bprm);
^1da177e Linus Torvalds 2005-04-16 78 if (retval < 0) return retval;
^1da177e Linus Torvalds 2005-04-16 79 bprm->argc++;
^1da177e Linus Torvalds 2005-04-16 80
^1da177e Linus Torvalds 2005-04-16 81 /*

:::::: The code at line 73 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: Binary data