diff --git a/src/timezone/localtime.c b/src/timezone/localtime.c
index fb04b4cf6bf..1a8088b520c 100644
--- a/src/timezone/localtime.c
+++ b/src/timezone/localtime.c
@@ -588,17 +588,10 @@ tzloadbody(char const *name, char *canonname, struct state *sp, bool doextend,
 int
 tzload(char const *name, char *canonname, struct state *sp, bool doextend)
 {
-	union local_storage *lsp = malloc(sizeof *lsp);
+	union local_storage ls;
+	union local_storage *lsp = &ls;
 
-	if (!lsp)
-		return errno;
-	else
-	{
-		int			err = tzloadbody(name, canonname, sp, doextend, lsp);
-
-		free(lsp);
-		return err;
-	}
+	return tzloadbody(name, canonname, sp, doextend, lsp);
 }
 
 static bool
