Re: 1352 NUL bytes at the end of a page?

From: Steven Cole
Date: Mon May 17 2004 - 12:35:16 EST



On May 17, 2004, at 9:37 AM, viro@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx wrote:

On Mon, May 17, 2004 at 08:22:10AM -0700, Linus Torvalds wrote:


On Mon, 17 May 2004, Theodore Ts'o wrote:

Note though that the stdio library uses a writeable mmap to implement
fwrite.

It does? Whee. Then I'll have to agree with Andrew - if there is a path
that is more likely to have bugs, it's trying to do writes with mmap and
ftruncate.

Who came up with that braindead idea? Is it some crazed Mach developer
that infiltrated the glibc development group?

IIRC, that idiocy had been disabled by default (note that it's inherently
broken, since truncate() between your mmap() and memcpy() will lead to
a coredump, which is not something fwrite() is allowed to do in such
situation).

strace should show if there such mmap calls are made, anyway. Did they
show up in the traces?



These calls show up in an strace which I did from a non-failing system,
but which has the same glibc as the failing system:

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
old_mmap(NULL, 19184, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000

The command was the following, with the result "Nothing to pull".
strace bk pull bk://linux.bkbits.net/linux-2.5

There were 52 instances of mmap2 or old_mmap in the saved script log.

Steven

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/