Fixed [1579558] (TZ longer than 64 chars on solaris, with FREEMEM redefined).

git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1390 59561ff5-6e30-0410-9f3c-9617f08c8826
This commit is contained in:
vlm 2007-10-02 11:03:02 +00:00
parent 83b901d8e9
commit aa7d089282
1 changed files with 6 additions and 3 deletions

View File

@ -105,10 +105,13 @@ static long GMTOFF(struct tm a){
tzold = getenv("TZ"); \
if(tzold) { \
size_t tzlen = strlen(tzold); \
if(tzlen < sizeof(tzoldbuf)) \
if(tzlen < sizeof(tzoldbuf)) { \
tzold = memcpy(tzoldbuf, tzold, tzlen + 1); \
else \
tzold = strdup(tzold); /* Ignore error */ \
} else { \
char *dupptr = tzold;
tzold = MALLOC(tzlen + 1); \
if(tzold) memcpy(tzold, dupptr, tzlen + 1); \
} \
setenv("TZ", "UTC", 1); \
} \
tzset(); \