aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/timezone/localtime.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/timezone/localtime.c b/src/timezone/localtime.c
index 8e64f065b45..64ed06185f0 100644
--- a/src/timezone/localtime.c
+++ b/src/timezone/localtime.c
@@ -3,7 +3,7 @@
* 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/timezone/localtime.c,v 1.9 2004/11/01 21:34:44 tgl Exp $
+ * $PostgreSQL: pgsql/src/timezone/localtime.c,v 1.9.4.1 2006/01/10 20:16:25 tgl Exp $
*/
/*
@@ -842,21 +842,24 @@ gmtload(struct state * sp)
bool
pg_tzset(const char *name)
{
+ struct state tmpmem;
+
if (lcl_is_set && strcmp(lcl_TZname, name) == 0)
return true; /* no change */
if (strlen(name) >= sizeof(lcl_TZname))
return false; /* not gonna fit */
- if (tzload(name, lclptr) != 0)
+ if (tzload(name, &tmpmem) != 0)
{
- if (name[0] == ':' || tzparse(name, lclptr, FALSE) != 0)
+ if (name[0] == ':' || tzparse(name, &tmpmem, FALSE) != 0)
{
/* Unknown timezone. Fail our call instead of loading GMT! */
return false;
}
}
+ memcpy(lclptr, &tmpmem, sizeof(struct state));
strcpy(lcl_TZname, name);
lcl_is_set = true;