flat assembler
Message board for the users of flat assembler.

Index > Windows > is that correct?

Author
Thread Post new topic Reply to topic
zxcv
Guest




zxcv
im litle tired, and i just want to be sure. I never did it before:
Code:
push 512
call [malloc]
mov [wsadata], eax
add eax, 400
mov [buffer], eax ;buffer has space for 112 bytes
push MEM
call [free]
add esp, 8
retn    

...
Code:
MEM:
wsadata dd ?
buffer dd ?    

is that correct? or i forgot about something?
Post 13 Jan 2008, 18:50
Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4633
Location: Argentina
LocoDelAssembly
No it is not, you are freeing "MEM" address which was never allocated by malloc but by program loader. Since you store the address returned by malloc at [wsadata], you should do "push [wsadata]/call [free]" instead.
Post 13 Jan 2008, 19:09
View user's profile Send private message Reply with quote
zxcv
Guest




zxcv
yes, ur right. i always used stack for it, but sometimes it went too complicated and i had to write from beggining Smile
8 bytes in almost empty section isnt much.
Post 13 Jan 2008, 21:00
Reply with quote
f0dder



Joined: 19 Feb 2004
Posts: 3170
Location: Denmark
f0dder
Why do you use hardcoded magic values instead of sizeof?
Post 13 Jan 2008, 21:35
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on YouTube, Twitter.

Website powered by rwasa.