Re: Current break round up

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Kircsi Tibor wrote:
Hi,

I may have misunderstood what you wrote, but I took a probe: (debugged
with cgdb)

.include "../sharedlibs/linux.s"

.section .text
        .globl  _start
_start:
        movl    %esp, %ebp

        # 1st brk call
        movl    $0, %ebx                # %ebx = 0, get the current
curret_break
        movl    $SYS_BRK, %eax
        int     $INT                    # %eax = address of
current_break

        # 2nd brk call
        addl    $0x1002, %eax           # add 4098 to current
current_break
        movl    %eax, %ebx              # %ebx = the address of the new
current_break
        movl    $SYS_BRK, %eax
        int     $INT

        # 3rd brk call
        movl    $0, %ebx
        movl    $SYS_BRK, %eax
        int     $INT

        # 4th brk call
        movl    $SYS_BRK, %eax
        int     $INT

        # 5th brk call
        movl    $SYS_BRK, %eax
        int     $INT

        # sys_exit
        movl    $0, %ebx                # set the return value of the
program
        movl    $SYS_EXIT, %eax
        int     $INT

addresses:
1st - 0x8049000 it's OK, because linux loads programs into the 0x8048000
virtual address space, so this is the first page
2nd - 0x804a002 not aligned to 0x804b000
3rd - 0x804a002 same
4th - same
5th - same

That's ok, after the 2nd brk I just always ask for the current break
with %ebx = 0. So, it seems unaligned return after the 4th call too.

Hi Tibor,
(sorry I called you "Kircsi")
I didn't mean that sys_brk aligned itself "automatically" by repeated calls. I ASSume that, unseen in the "strace" output, %ebx is being aligned "by hand" to a page boundary before that last sys_brk.

Randall Hyde wrote:

BTW, Randy, I ASSumed that you intended to reply to the list. Ya gotta hit "reply all" or it goes just to the sender...

I don't disagree that sys_mmap (or sys_mmap2?) is a better bet for allocating memory, but it isn't much use for "exploring" sys_brk...

Best,
Frank


--
To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies]     [Security]     [Linux C Programming]     [Linux for Hams]     [DCCP]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux