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
| ||
|
Date: Mon, 20 Feb 2012 21:01:45 +0100 From: Geert Uytterhoeven <geert@...ux-m68k.org> To: "H. Peter Anvin" <hpa@...or.com> Cc: linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org, mingo@...nel.org, tglx@...utronix.de, torvalds@...ux-foundation.org, akpm@...ux-foundation.org, hjl.tools@...il.com Subject: Re: [PATCH 06/30] sysinfo: Use explicit types in <linux/sysinfo.h> On Mon, Feb 20, 2012 at 18:29, H. Peter Anvin <hpa@...or.com> wrote: > Not really... it comes down to "implicit padding in kernel ABI structures is bad". They can easily become security holes. On 64-bit platforms with natural alignment of long, there's an implicit padding. > Geert Uytterhoeven <geert@...ux-m68k.org> wrote: > >>On Mon, Feb 20, 2012 at 01:07, H. Peter Anvin <hpa@...or.com> wrote: >>> --- a/include/linux/sysinfo.h >>> +++ b/include/linux/sysinfo.h >>> @@ -1,22 +1,24 @@ >>> #ifndef _LINUX_SYSINFO_H >>> #define _LINUX_SYSINFO_H >>> >>> +#include <linux/types.h> >>> + >>> #define SI_LOAD_SHIFT 16 >>> struct sysinfo { >>> - long uptime; /* Seconds since boot */ >>> - unsigned long loads[3]; /* 1, 5, and 15 minute load >>averages */ >>> - unsigned long totalram; /* Total usable main memory >>size */ >>> - unsigned long freeram; /* Available memory size */ >>> - unsigned long sharedram; /* Amount of shared memory */ >>> - unsigned long bufferram; /* Memory used by buffers */ >>> - unsigned long totalswap; /* Total swap space size */ >>> - unsigned long freeswap; /* swap space still available >>*/ >>> - unsigned short procs; /* Number of current >>processes */ >>> - unsigned short pad; /* explicit padding for m68k >>*/ >>> - unsigned long totalhigh; /* Total high memory size */ >>> - unsigned long freehigh; /* Available high memory size >>*/ >>> - unsigned int mem_unit; /* Memory unit size in bytes >>*/ >>> - char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 >>uses this.. */ >>> + __kernel_long_t uptime; /* Seconds since boot */ >>> + __kernel_ulong_t loads[3]; /* 1, 5, and 15 minute load >>averages */ >>> + __kernel_ulong_t totalram; /* Total usable main memory >>size */ >>> + __kernel_ulong_t freeram; /* Available memory size */ >>> + __kernel_ulong_t sharedram; /* Amount of shared memory */ >>> + __kernel_ulong_t bufferram; /* Memory used by buffers */ >>> + __kernel_ulong_t totalswap; /* Total swap space size */ >>> + __kernel_ulong_t freeswap; /* swap space still available >>*/ >>> + __u16 procs; /* Number of current >>processes */ >>> + __u16 pad; /* Explicit padding for m68k >>*/ >> >>Fueling the discussion about natural vs. 4-byte alignment? >> >>> + __kernel_ulong_t totalhigh; /* Total high memory size */ >>> + __kernel_ulong_t freehigh; /* Available high memory size >>*/ >>> + __u32 mem_unit; /* Memory unit size in bytes >>*/ >>> + char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)]; /* >>Padding: libc5 uses this.. */ >>> }; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- 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