[RFC] Only a.out QMAGIC format is working

Geyslan Gregório Bem geyslan at gmail.com
Tue Apr 1 08:47:09 EDT 2014


Sirs,

I was researching about old binary formats and did some tests.
Meantime, I was able to run sucessfully only the QMAGIC format.
Nonetheless, the OMAGIC, NMAGIC and ZMAGIC didn't work anymore.

The test occurred using old slackware binaries and some new, the
latter compiled by me, using cross-compiled as and ld. In any case,
the QMAGIC was the only functional.

After some debugging I identified (when loading a OMAGIC) that the
kernel sigkill the current after this checking:

http://lxr.linux.no/linux+v3.13.5/arch/x86/ia32/ia32_aout.c#L325

 325                error = vm_brk(text_addr & PAGE_MASK, map_size);
 326
 327                if (error != (text_addr & PAGE_MASK)) {
 328                        send_sig(SIGKILL, current, 0);
 329                        return error;
 330                }

I suppose this happens due to changes made, in the course of time, in
the memory mapping (vm_brk/do_brk), therefore the only one that still
works is the QMAGIC (the aligned one). Or maybe, it's purposely. [RFC]

Is important to note that when a ZMAGIC is loaded what happens is a
"Segmentation fault" and not "SIGKILL".

That was reported by others too:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/966472

-- 
Regards,

Geyslan G. Bem
hackingbits.com



More information about the Kernelnewbies mailing list