FILE's _file can only hold a short

John Baldwin jhb at freebsd.org
Fri Jan 11 20:42:03 UTC 2013


On Wednesday, October 31, 2012 02:12:55 PM mdf at freebsd.org wrote:
> I seem to recall a thread earlier on this limitation, but looking at
> actual libc/stdio sources, the 4 year old check for open(2)'s fd being
> less than SHRT_MAX is still there.  I thought I saw a patch to change
> this to an int, but it's not in the tree.  Was this in a PR or a
> mailing list thread or am I just imagining things?
> 
> We've run into this limitation at work, where some processes have
> around 32k open file descriptors and then try to use the libc FILE
> interface.  Since we control ABI we can just change this to int, but I
> had been hoping there was a FreeBSD revision we could pull instead of
> having another diff.

I had been working on a port-exp run.  The problem I have run into is
that perl actually reaches inside of FILE directly to clear out _file
so it can control when the fd is actually closed (really gross).  I
have extended my stuff so that old Perl binaries should still work, but
wanted to figure out how to prevent future Perl binaries from growing
the same dependency.  Also, I haven't had a chance to do a follow-up
to find what else out in ports-land tries to use _file directly from
FILE.

-- 
John Baldwin


More information about the freebsd-current mailing list