--- hash.c.orig 2011-11-11 14:06:02.000000000 +0900 +++ hash.c 2011-11-11 14:32:51.000000000 +0900 @@ -2302,8 +2302,11 @@ ruby_setenv(const char *name, const char if (value) { str = malloc(len += strlen(value) + 2); snprintf(str, len, "%s=%s", name, value); - if (putenv(str)) + if (putenv(str)) { + free(str); rb_sys_fail("putenv"); + } + free(str); } #else /* WIN32 */ size_t len;