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>] [day] [month] [year] [list]
Message-Id: <1455111283-22854-1-git-send-email-daniel.wagner@bmw-carit.de>
Date:	Wed, 10 Feb 2016 14:34:43 +0100
From:	Daniel Wagner <daniel.wagner@...-carit.de>
To:	Alexander Viro <viro@...iv.linux.org.uk>
Cc:	linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
	Daniel Wagner <daniel.wagner@...-carit.de>
Subject: [PATCH] binfmt_em86: load_em86: Remove unused i_arg variable and constify i_name

i_arg is not used at all therefore remove it. This also prevents
an error in case -Werror=i-Werror=incompatible-pointer-types
is enabled:

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);


The second error would come from i_name which is defined as char pointer
without the const attribute.

fs/binfmt_em86.c:71: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);


While at it, check the remove_arg_zero return value too.

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);
  ^

Signed-off-by: Daniel Wagner <daniel.wagner@...-carit.de>
---
 fs/binfmt_em86.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/fs/binfmt_em86.c b/fs/binfmt_em86.c
index 4905385..bc8fff2 100644
--- a/fs/binfmt_em86.c
+++ b/fs/binfmt_em86.c
@@ -24,7 +24,8 @@
 
 static int load_em86(struct linux_binprm *bprm)
 {
-	char *interp, *i_name, *i_arg;
+	const char *i_name;
+	char *interp;
 	struct file * file;
 	int retval;
 	struct elfhdr	elf_ex;
@@ -55,7 +56,6 @@ static int load_em86(struct linux_binprm *bprm)
 	 */
 	interp = EM86_INTERP;
 	i_name = EM86_I_NAME;
-	i_arg = NULL;		/* We reserve the right to add an arg later */
 
 	/*
 	 * Splice in (1) the interpreter's name for argv[0]
@@ -65,15 +65,11 @@ static int load_em86(struct linux_binprm *bprm)
 	 * This is done in reverse order, because of how the
 	 * user environment and arguments are stored.
 	 */
-	remove_arg_zero(bprm);
+	retval = remove_arg_zero(bprm);
+	if (retval < 0) return retval;
 	retval = copy_strings_kernel(1, &bprm->filename, bprm);
 	if (retval < 0) return retval; 
 	bprm->argc++;
-	if (i_arg) {
-		retval = copy_strings_kernel(1, &i_arg, bprm);
-		if (retval < 0) return retval; 
-		bprm->argc++;
-	}
 	retval = copy_strings_kernel(1, &i_name, bprm);
 	if (retval < 0)	return retval;
 	bprm->argc++;
-- 
2.5.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ