On Fri, Jan 19, 2007 at 07:31:25PM -0500, Clint Adams wrote:
> I wonder where the EOVERFLOW is coming from.

I think i can answer that question in the mean time. Apparently stat in
glibc is a wrapper around stat64 that converts the contents of the
struct stat64 returned by stat64 to a struct stat as returned by stat.
Presumably this conversion fails if the file size returned by stat64
does not fit into a 32-Bit st_size as used by struct stat.

I made a few more experiments: A little C-Program that only does

        stat ("./very_large_file.tgz", &statbuf);
        exit (errno);

This program exits 75 (EOVERFLOW) independant of fakeroot. Thus this
probably explains where EOVERFLOW comes from. Then I made a similar
program that does

        chown ("./very_large_file.tgz", 0, 0);
        exit (errno);

instead. This program succeeds without fakeroot (presumably because a
normal chown does not use stat/stat64). However, if this is run under
fakeroot it exits 75 (EOVERFLOW). Maybe libfakeroot can use stat64
internally for all internal stat calls?

     regards   Christian



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to