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]
Date:	Sat, 27 Oct 2007 17:54:53 -0700
From:	"H. Peter Anvin" <hpa@...or.com>
To:	linux-arch@...r.kernel.org
CC:	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: struct user . u_ar0

I recently noticed that all architectures appear to have an entry n 
struct user called u_ar0:

   struct user_pt_regs * u_ar0;  /* Used by gdb to help find the values 
for */
                                 /* the registers. */

In all cases, u_ar0 is a pointer type, although the type of pointer 
varies with the architecture.

However, under no conditions does this field ever contain a pointer 
value!  It is set by the a.out code and its derivatives as an offset, 
not a pointer value (there are a total of four references in the kernel, 
in arch/{m68k,blackfin}/kernel/process.c, arch/x86/ia32/ia32_aout.c and 
fs/binfmt_aout.c -- they are all functionally identical and write-only):

dump.u_ar0 = (void *)(((unsigned long)(&dump.regs)) - ((unsigned 
long)(&dump)));

Any reason to *NOT* change this field to "unsigned long"?  <asm/user.h>, 
where struct user is defined, is not exported to userspace in any 
architecture as far as I can tell, although <linux/user.h>, which just 
contains #include <asm/user.h>, *is* exported (clearly a bug.)

	-hpa


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ