Skip to content

Issues with ch7 - malloc implementation #1

@ZoranStojsavljevic

Description

@ZoranStojsavljevic

Hello Andre,

Excellent article, which really prompted me to dive much deeper to Linux implementation than I never intended:
https://medium.com/@andrestc/implementing-malloc-and-free-ba7e7704a473

I always naively thought that malloc() is actually a system call, but, in fact, it is only glibc library function, behind scene hiding brk() and sbrk() system calls. As you, Andre, wrote later, it uses mmap() for large chunks of the memory.

Here, I just wanted to point to the part of your article which says: "Beware that this implementation is full of bugs (some are discussed below, some are obvious from reading the real malloc implementation)".

Just wanted to point some of them (I still did not read real malloc() implementation):
[1] Why 3 pages (page size = 0x1000), why not 4 (algorithm 2**N, N=2, in this case)?
[2] _malloc(0) still assigns 3 pages. Should pass...
[3] _malloc(-1) still works. Should not!

These are just initial observations. There are more... I need to try to fix some of these (not only to sob, as old stubborn lady)!

But still... Thank you, Andre! Great Work.

Zoran Stojsavljevic

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions