diff --git a/mozilla/js/src/js.c b/mozilla/js/src/js.c index c1611a8fab5..d04a76fddbe 100644 --- a/mozilla/js/src/js.c +++ b/mozilla/js/src/js.c @@ -2012,7 +2012,7 @@ env_setProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp) return JS_FALSE; name = JS_GetStringBytes(idstr); value = JS_GetStringBytes(valstr); -#if defined XP_WIN || defined HPUX +#if defined XP_WIN || defined HPUX || defined OSF1 { char *waste = JS_smprintf("%s=%s", name, value); if (!waste) { @@ -2020,8 +2020,14 @@ env_setProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp) return JS_FALSE; } rv = putenv(waste); -#ifndef HPUX - /* XXX hpux9 at least still has the bad old non-copying putenv */ +#if !defined HPUX && !defined OSF1 + /* + * HPUX9 at least still has the bad old non-copying putenv. + * + * Per mail from , OSF1 also has a putenv + * that will crash if you pass it an auto char array (so it must place + * its argument directly in the char *environ[] array). + */ free(waste); #endif }