[3246] in bugtraq

home help back first fref pref prev next nref lref last post

Re: libresolv+ bug

daemon@ATHENA.MIT.EDU (Julian Assange)
Thu Aug 22 03:20:32 1996

Date: 	Thu, 22 Aug 1996 10:53:36 +1000
Reply-To: Bugtraq List <BUGTRAQ@NETSPACE.ORG>
From: Julian Assange <proff@suburbia.net>
To: Multiple recipients of list BUGTRAQ <BUGTRAQ@NETSPACE.ORG>
In-Reply-To:  <4vfsd9$nfb@fludd.myrus> from "Zygo Blaxell" at Aug 21,
              96 04:43:21 pm

> A simple and reasonably efficient implementation would simply arrange for
> arrays to be allocated at the end of a hardware memory page.  So, assuming
> a CPU with a stack that grows downward, 4-byte ints and 4K pages, we have
> memory that might look like this:
>
>         0x00122000: 4096 unallocated, read/write prohibited bytes
>         0x00123000: 3996 unallocated bytes
>                     100 bytes for 'buf'
>         0x00124000: 4096 unallocated, read/write prohibited bytes
>         0x00125000: 3096 unallocated bytes
>                     1000 bytes for 'buf2'
>         0x00126000: 4096 unallocated, read/write prohibited bytes
>         0x00127000: unknown number of unallocated bytes
>                     12 bytes for a, b, and c
>                     stack frame for 'foo'
>                     foo's caller's automatic variables and frame
>                     foo's caller's caller's automatic variables and frame
>
> It's mostly safe to allow the stack frame for a function that is called
> by 'foo' to appear immediately before 'buf', but not safe to allow the
> non-array variables (a, b, c) to be there.  Any buffer overrun at the high
> end of the buffer would cause a segmentation fault, but a buffer underrun
> at the low end of the buffer would silently clobber anything else in
> the same page.  It would be caught if the overrun hit the low end of the
> page.

There is a malloc debuging package called "Electric Fence", developed at pixar,
which does just this.

--
"Of all tyrannies a tyranny sincerely  exercised for the good of its victims
 may be the most  oppressive.  It may be better to live under  robber barons
 than  under  omnipotent  moral busybodies,  The robber baron's  cruelty may
 sometimes sleep,  his cupidity may at some point be satiated; but those who
 torment us for own good  will torment us  without end,  for they do so with
 the approval of their own conscience."    -   C.S. Lewis, _God in the Dock_
+---------------------+--------------------+----------------------------------+
|Julian Assange RSO   | PO Box 2031 BARKER | Secret Analytic Guy Union        |
|proff@suburbia.net   | VIC 3122 AUSTRALIA | finger for PGP key hash ID =     |
|proff@gnu.ai.mit.edu | FAX +61-3-98199066 | 0619737CCC143F6DEA73E27378933690 |
+---------------------+--------------------+----------------------------------+

home help back first fref pref prev next nref lref last post