Mailing List Archive
tlug.jp Mailing List tlug archive tlug Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]Re: [tlug] C puzzle
- Date: Tue, 30 Jul 2002 12:02:00 -0400
- From: Josh Glover <jmglov@example.com>
- Subject: Re: [tlug] C puzzle
- References: <20020726012006.M48242-100000@example.com> <15680.11598.642676.889439@example.com> <1027725222.13382.6.camel@example.com> <m3d6t6xcn8.wl@example.com> <15685.61809.707516.99320@example.com> <3D45F5AD.7030707@example.com> <1028034551.13418.130.camel@example.com> <3D4693D2.1020208@example.com> <15686.45289.914784.491660@example.com>
- User-agent: Mutt/1.4i
On Tue, Jul 30, 2002 at 11:29:45AM -0400, Viktor Pavlenko quoth, and most verily thus: > > What about the one which always crashes? > > The following program contains 25 characters, uses no library > functions and segfaults when run: > > main(){((void(*)())0)();} > > I used the following line to test the code (may save you some typing): > > $ echo 'main(){((void(*)())0)();}' > f.c; gcc -o f f.c; ./f; rm f.c f > Segmentation fault Now *that* is w4j 1337! OK, here is my best guess of how it works: main() contains one function call, which is typecast as a void pointer. Therefore, the 0 is actually the function name, right? So what happens when you exec it is it tries to exec whatever function lies at the memory address 0x0, and that causes a segfault. My gdb session would seem to confirm this, right? (gdb) l 1 main(){((void(*)())0)();} (gdb) b 1 Breakpoint 1 at 0x8048430: file f.c, line 1. (gdb) r Starting program: /home/jmglov/./f Breakpoint 1, main () at f.c:1 1 main(){((void(*)())0)();} (gdb) p ((void(*)())0) $1 = (void (*)()) 0 (gdb) p ((void(*)())0)() Program received signal SIGSEGV, Segmentation fault. 0x00000000 in ?? () -- Josh Glover <jmglov@example.com> Associate Systems Administrator INCOGEN, Inc.
- Follow-Ups:
- Re: [tlug] C puzzle
- From: Viktor Pavlenko
- References:
- [tlug] C puzzle
- From: Tod McQuillin
- Re: [tlug] C puzzle
- From: Viktor Pavlenko
- Re: [tlug] C puzzle
- From: bruno raoult
- Re: [tlug] C puzzle
- From: Masato BITO
- Re: [tlug] C puzzle
- From: Viktor Pavlenko
- Re: [tlug] C puzzle
- From: Josh Glover
- Re: [tlug] C puzzle
- From: bruno raoult
- Re: [tlug] C puzzle
- From: Josh Glover
- Re: [tlug] C puzzle
- From: Viktor Pavlenko
Home | Main Index | Thread Index
- Prev by Date: Re: [tlug] C puzzle
- Next by Date: Re: [tlug] C puzzle
- Previous by thread: Re: [tlug] C puzzle
- Next by thread: Re: [tlug] C puzzle
- Index(es):
Home Page Mailing List Linux and Japan TLUG Members Links