[Fontconfig] Re: [patch]: mmapping FontConfig data structures

Behdad Esfahbod behdad at cs.toronto.edu
Sat Jun 11 01:51:57 EST 2005


On Fri, 10 Jun 2005, Patrick Lam wrote:

> Jeremy C. Reed wrote:
> > Please make sure this doesn't have race conditions when using /tmp or
> > TMPDIR.
> >
> > Maybe use O_EXCL (with open(2)) when creating, but that may not be good
> > enough for some network-based filesystems.
> >
> > And don't use 666 for creating the file. If I overlooked or misunderstood
> > something, please let us know.
>
> I will use 600 rather than 666. Since this file is just hanging around
> anyway, it seems to be insufficient to avoid race conditions.  I think
> that if I could create a checksum (e.g. CRC32) of the expected state, as
> written, and verified the checksum before read, that ought to be
> sufficient; what do you think?

You better use O_EXCL anyway.  Just in case two copies of fc-mmap
happen to run in parallel, or something.

How is fc-mmap supposed to be called BTW?  Why not dump the cache
in the library if it doesn't exist?


> Alan Coopersmith wrote:
> > But only if fonts.mmap is platform independent.  Many places
> > use home directories NFS shared across different types of machines.
> > (big & little endian, 32 & 64 bit, etc.)
>
> It's hard to imagine how one could possibly make fonts.mmap platform
> independent.  However, I have included the output of uname's sysname and
> machine fields in the filename to prevent horrible outcomes, and as an
> extra check, I verify endianness by writing 0x12345678 to the file and
> reading it again.

You should be fine as long as you do it in /tmp.

> pat

--behdad
http://behdad.org/



More information about the Fontconfig mailing list