From: David Feuer <David_Feuer@brown.edu>
To: linux-kernel@vger.kernel.org
Subject: RE: malloc (1/0) ??
Date: Tue, 07 Nov 2000 04:26:43 -0500 [thread overview]
Message-ID: <4.3.2.7.2.20001107040409.00add3e0@postoffice.brown.edu> (raw)
As long as you don't try to do any more mm once you've allocated with
malloc(0), and as long as you haven't done any previous allocations with
malloc, you should be able to scribble all over malloc. In fact, if you
want, I think you can scribble all over your own stack without causing
Linux any trouble.
I'm guessing (and this is only an educated guess), that you could do some
really strange things like
void scribble(void)
{
int x[50];
do_scribble(x);
}
void do_scribble(int *x)
{
char y[50];
x[70]=54;
x[71]=32;
x[50]=3;x[51]=12; /* watch out */
}
void main(void)
{
scribble();
}
Depending how the storage structure works for your C compiler (sorry, I
don't remember), this COULD scribble integers onto your character
array. The line marked "watch out" COULD severely scribble the return
pointer and make the program crash in really ugly ways. Alternatively, it
might not. Depends how you stack it.
As a less severe example, if you want, you can do something really funky like
x=(char *)malloc(100);
x=(char *)realloc (x,50);
y=x+50; /*could be a fencepost error: not worth my time to check*/
Writing to y will scribble on malloc's territory, but as long as you don't
call malloc again, you should be fine. This way you can get any amount of
scribble space. Of course, this only works on normal versions of malloc
that don't try to return memory to the OS, etc.
--
This message has been brought to you by the letter alpha and the number pi.
David Feuer
David_Feuer@brown.edu
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next reply other threads:[~2000-11-07 9:24 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-11-07 9:26 David Feuer [this message]
-- strict thread matches above, loose matches on Subject: below --
2000-11-07 16:12 malloc(1/0) ?? Jesse Pollard
2000-11-07 16:38 ` lost
2000-11-07 6:45 Dan Kegel
2000-11-07 7:13 ` J. Dow
2000-11-07 7:52 ` David Schwartz
2000-11-08 0:47 ` Igmar Palsenberg
2000-11-07 3:59 RAJESH BALAN
2000-11-07 7:54 ` David Schwartz
2000-11-07 7:59 ` Andrej Hosna
2000-11-07 8:50 ` David Schwartz
2000-11-07 8:09 ` Lyle Coder
2000-11-07 8:46 ` Matti Aarnio
2000-11-08 0:29 ` Rogier Wolff
2000-11-08 0:36 ` David Schwartz
2000-11-08 0:54 ` Igmar Palsenberg
2000-11-08 0:50 ` Igmar Palsenberg
2000-11-08 22:11 ` H. Peter Anvin
2000-11-08 22:11 ` Rasmus Andersen
2000-11-09 16:03 ` Igmar Palsenberg
2000-11-08 0:41 ` Igmar Palsenberg
2000-11-07 23:58 ` Tim Waugh
2000-11-08 12:38 ` Igmar Palsenberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4.3.2.7.2.20001107040409.00add3e0@postoffice.brown.edu \
--to=david_feuer@brown.edu \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®