rem: tzstr = (char*)strdup(getenv("TZ"));
add: tzstr = (char*)icalmemory_strdup(getenv("TZ"));
context: char* test_set_tz(const char* tzid){    char *tzstr = 0;    char *tmp;   /* Put the new time zone into the environment */    if(getenv("TZ") != 0){	tzstr = (char*)strdup(getenv("TZ"));	if(tzstr == 0){	    icalerror_set_errno(ICAL_NEWFAILED_ERROR);	    return 0;	}    }    tmp = (char*)malloc(1024);    if(tmp == 0){	icalerror_set_errno(ICAL_NEWFAILED_ERROR);	return 0;    }    snprintf(tmp,1024,"TZ=%s",tzid);    /* HACK. In some libc versions, putenv gives the string to the       system and in some it gives a copy, so the following might be a       memory leak. THe linux man page says that glibc2.1.2 take       ownership ( no leak) while BSD4.4 uses a copy ( A leak ) */    putenv(tmp);     return tzstr; /* This will be zero if the TZ env var was not set */}