Subject: read/write
To: None <tech-userlevel@netbsd.org>
From: Jason Thorpe <thorpej@cs.orst.edu>
List: tech-userlevel
Date: 12/12/1994 00:08:06
Well, after happily installing texinfo-3.1 on my i386, I went to
plop it onto my hp300. Much to my dismay, it didn't work so hot.
I traced it down to some code in makeinfo and some other utils where it
actually reads in the file. It basically does the following:
1. stat the file (for st_size)
2. malloc that many bytes for a buffer
3. read the file into the buffer with one call to read
The problem is that st_size is an off_t (64 bit) where malloc(3) and read(2)
expect size_t (32 bit). This is definitely a problem, just
one that doesn't manifest itself on the i386.
But, I believe POSIX states that read(2) and write(2) will take a size_t -
period...So, this has left me with a bit of a dilemma.
Really, this could be described as a bug (or just poorly written code) in
the texinfo package, but I think that this issue warrants some
attention. I mean, it seems to me that the maximum file size should be
passable to read(2) as an argument...
Later...
--------------------------------------------------------------------------
Jason R. Thorpe thorpej@cs.orst.edu 758-2003
OJGSE NERO Project CSWest Room 5 737-5567
Shared Computing Environment Group http://www.cs.orst.edu/~thorpej
"Morality and law are merely conventions adopted out of mutual fear."
-- Plato