[tz] defensive value for define on Solaris causes load of timerule to fail

Kees Dekker Kees.Dekker at infor.com
Mon Jun 12 11:22:45 UTC 2017


>The FILENAME_MAX macro, as used in the local_storage union in localtime.c, has on Solaris the very low/defensive value of 14 (from stdio.h).
>Please consider using PATH_MAX, from limits.h instead, as that value is (usually) 250 or beyond. Or anything else, that can hold reasonable lengths of file names.
>Loading zonefiles now fails on Solaris if a filename exceeds the used macro.

Addition:
The PATH_MAX macro does not exist on Windows, MAX_PATH does (but requires to include several Windows header files) and FILENAME_MAX is suitable.
So, FILENAME_MAX is probably the better choice, but may be, a
#if FILENAME_MAX < 260
#undef FILENAME_MAX
#define FILENAME_MAX 260
#endif

code part is needed? Then FILENAME_MAX is at a defined minimum value (of course, the limit of 260 is also quite an arbitrary choice).

Kees
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mm.icann.org/pipermail/tz/attachments/20170612/c761af34/attachment.html>


More information about the tz mailing list