public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* modutils-2.3.15 'insmod'
@ 2003-07-09 15:25 Richard B. Johnson
  2003-07-09 15:45 ` Andreas Schwab
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Richard B. Johnson @ 2003-07-09 15:25 UTC (permalink / raw)
  To: Linux kernel


modutils-2.3.15, and probably later, has a bug that can prevent
modules from being loaded from initrd, this results in not
being able to mount a root file-system. The bug assumes that
malloc() will return a valid pointer when given an allocation
size of zero.

When there are no modules loaded, insmod scans for modules
and allocates data using its xmalloc() based upon the number
of modules found. If the number was 0, it attempts to allocate
0 bytes (0 times the size of a structure). If malloc() returns
NULL (and it can, probably should), xmalloc() will write an
"out of memory" diagnostic and call exit().

The most recent `man` pages that RH 9.0 distributes states that
malloc() can return either NULL of a pointer that is valid for
free(). This, of course, depends upon the 'C' runtime library's
malloc() implementation.

#include <stdio.h>
#include <malloc.h>
int main(void);
int main()
{
    printf("%p\n", malloc(0));
    return 0;
}

It is likely that malloc(0) returning a valid pointer is a bug
that has prevented this problem from being observed. Such a
bug in malloc() is probably necessary to keep legacy software
running, but new software shouldn't use such atrocious side-effects.
An allocation of zero needs to be discovered and fixed early
in code design.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.20 on an i686 machine (797.90 BogoMips).
Why is the government concerned about the lunatic fringe? Think about it.


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2003-07-14 11:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-07-09 15:25 modutils-2.3.15 'insmod' Richard B. Johnson
2003-07-09 15:45 ` Andreas Schwab
2003-07-09 16:04   ` Bill Rugolsky Jr.
2003-07-09 22:44   ` H. Peter Anvin
2003-07-09 23:51     ` Richard B. Johnson
2003-07-09 16:08 ` Kurt Wall
2003-07-09 16:33   ` Andy Isaacson
2003-07-14 11:41 ` Keith Owens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox