|
|
|
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
[Kernel Newbies] [Security] [Linux C Programming] [Linux for Hams] [DCCP] [Netfilter] [Bugtraq] [Photo] [Yosemite] [Yosemite News] [MIPS Linux] [ARM Linux] [Linux RAID] [Linux Admin] [Samba] [Video 4 Linux]
![]() |