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-prev] [day] [month] [year] [list]
Message-ID: <21780.1221759388@turing-police.cc.vt.edu>
Date:	Thu, 18 Sep 2008 13:36:28 -0400
From:	Valdis.Kletnieks@...edu
To:	evilsocket <evilsocket@...il.com>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: Stack buffer size issue

On Thu, 18 Sep 2008 14:30:12 +0200, evilsocket said:

> char * abuffer[123];

Note that this '123' isn't anything that's known to the kernel, or passed to
it.

> This *should* give the output :
> 
> SIZE : 123

Why "should' it do so?  The kernel doesn't know or care much about what your
stack layout is, except if you overflow the provided space.

Minor nit:  'char *abuffer[123];' allocates an array of 123 pointers-to-ints,
which means it's actually 123*4 or 123*8 bytes in size, depending on the size
of a pointer (different for 32 and 64 bit programs).  So if you got 123 as
an answer, that would *still* be wrong...

> I'm using the struct task_struct in the kernel module, looping the mmap 
> to find the vm area the address resides in and then to set
> 
> mm_size = vm_end - vm_start

Right.  That's the size of the mm you're looking at. There isn't one mm
for each variable in your program.

> But doing so i obtaing only the size of the vm page the buffer resides .

That's probably because the struct mm that covers your program stack is only
one page in size.

Do a 'cat /proc/self/maps', which will show the maps in use for the /bin/cat
process, and ponder why there's a lot fewer lines than /bin/cat has variables.

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ