Messages in this thread | | | Date | Tue, 1 Apr 1997 17:26:54 -0500 (EST) | From | Greg Alexander <> | Subject | Re: 2.0000 |
| |
On Wed, 2 Apr 1997, Johnny Stenback wrote:
> > > Oh yearh.. I know, kernel hacking is good... But Linux will never be a real > > > commercially-supported OS, if a release kernel will not be released... > > > > > > So, we want 2.0.30 or .31 or any release. Is there a chance to hope ? :) > > > > When it works absolutely perfectly. 2.0.x is assumed to be _very_ stable. It > > is important that remains true > > > > > > In that case someone with the knowledge should take a look at the mmap > problem caused by the program posted recently by John Carter or by the > program listed below... > > #include <stdio.h> > #include <unistd.h> > #include <sys/mman.h> > #include <sys/types.h> > #include <sys/stat.h> > #include <fcntl.h> > #include <string.h> > #include <errno.h> > > void main () > { > int fd; > void *p; > char buf[1024]; > fd = open("test", O_RDONLY); > p = mmap(NULL, 200, PROT_WRITE, MAP_PRIVATE, fd, 0); > strncpy (buf, p, 100); > printf ("%s\n", buf); > munmap (p, 200); > exit (0); > } > > This has been discussed several times allready but no one has yet come > up with a patch that fixes the problem...
I, for one, can find no such problem. I tried what I thought would cause the problem discussed on the list, gave up, "well, his code causes it, so let's start there." And, uh, your code doesn't do anything toooo unusual. (I did these tests with a test full of random blah).
I get a segfault before anything is printed with this as it is now. If I add a buf[100]=0; after that strncpy and change it to PROT_READ, I get no error. We get SIGBUS if the only change is changing that to MAP_SHARED. changing the order of the strncpy to write to *p instead of *buf is harmless, as well, because MAP_PRIVATE is COW. I see no bug. If anyone _can_ produce this bug (for real), please send it to me, I would like to at least dig. From the comments others have made, this should hopefully be fairly uncomplex to, at the least, kludge around.
Greg Alexander http://www.cia-g.com/~sietch/ ---- Anyone who cannot cope with mathematics is not fully human. At best he is a tolerable subhuman who has learned to wear shoes, bathe and not make messes in the house. -- Paul Erdos also -- Lazarus Long, "Time Enough for Love"
| |