Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.unix.programmer > #491

Re: bzero(mmap(NULL, 12288, ANON), 8008) raising bus error!

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.unix.programmer
Subject Re: bzero(mmap(NULL, 12288, ANON), 8008) raising bus error!
Date 2011-05-11 13:24 +1200
Message-ID <92u6qhF51qU6@mid.individual.net> (permalink)
References <6e42b7e2-8f29-4c41-98eb-3caa4108f964@m10g2000yqd.googlegroups.com>

Show all headers | View raw


On 05/11/11 10:24 AM, loozadroog wrote:
> I just posted a version of this program last night in clc,
> asking for a general look-through. But now I've run into
> a problem when using mmap that doesn't happen with
> malloc.
>
> I'm getting a bus error in memset, attempting to clear
> the new memory. What could be going wrong?
>
>
> Some relevant variables from gdb at the point of crash:
> (gdb) r
> Starting program: /home/olpc/xpost3/proto/v
>
> Program received signal SIGBUS, Bus error.
> 0xb7ec079f in memset () from /lib/libc.so.6
> (gdb) backtrace
> #0  0xb7ec079f in memset () from /lib/libc.so.6
> #1  0x08048799 in mfalloc (mem=0x8049e90, sz=8008) at v.c:79
> #2  0x080487b7 in initmtab (mem=0x8049e90) at v.c:99
> #3  0x080489c5 in init () at v.c:162
> #4  0x080489f1 in main () at v.c:171
> (gdb) up
> #1  0x08048799 in mfalloc (mem=0x8049e90, sz=8008) at v.c:79
> 79          memset(mem->base + adr, 0, sz); /* bus error with MMAP !
> */
> (gdb) p adr
> $1 = 0
> (gdb) p sz
> $2 = 8008
> (gdb) p pgsz
> $3 = 4096
> (gdb) p mem->max
> $4 = 12288
> (gdb) quit

It looks like you map pgsz (4096) bytes here:

mem->base = mmap(NULL, pgsz, PROT_READ|PROT_WRITE, MAP_SHARED
             |MAP_ANONYMOUS,-1,0 );

and attempt to write sz (8008) bytes here:

memset(mem->base + adr, 0, sz);

You have the same error with malloc, you just don't see it because the 
write does not enter unmapped memory, it just pisses on the heap!

By the way, why this line?

#define _GNU_SOURCE

-- 
Ian Collins

Back to comp.unix.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

bzero(mmap(NULL, 12288, ANON), 8008) raising bus error! loozadroog <mijoryx@yahoo.com> - 2011-05-10 15:24 -0700
  Re: bzero(mmap(NULL, 12288, ANON), 8008) raising bus error! Ian Collins <ian-news@hotmail.com> - 2011-05-11 13:24 +1200
    Re: bzero(mmap(NULL, 12288, ANON), 8008) raising bus error! loozadroog <mijoryx@yahoo.com> - 2011-05-10 19:22 -0700
      Re: bzero(mmap(NULL, 12288, ANON), 8008) raising bus error! Ian Collins <ian-news@hotmail.com> - 2011-05-11 14:39 +1200
        Re: bzero(mmap(NULL, 12288, ANON), 8008) raising bus error! loozadroog <mijoryx@yahoo.com> - 2011-05-10 23:02 -0700
  Re: bzero(mmap(NULL, 12288, ANON), 8008) raising bus error! pacman@kosh.dhis.org (Alan Curry) - 2011-05-11 06:40 +0000
    Re: bzero(mmap(NULL, 12288, ANON), 8008) raising bus error! loozadroog <mijoryx@yahoo.com> - 2011-05-11 17:38 -0700

csiph-web