@@ -166,30 +166,45 @@ * variables from the environment which applications might * expect. */ pool = objc_autoreleasePoolPush(); - if ((env = getenv("HOME")) != NULL) - [environment - setObject: [OFString stringWithUTF8String: env] - forKey: @"HOME"]; - if ((env = getenv("PATH")) != NULL) - [environment - setObject: [OFString stringWithUTF8String: env] - forKey: @"PATH"]; - if ((env = getenv("SHELL")) != NULL) - [environment - setObject: [OFString stringWithUTF8String: env] - forKey: @"SHELL"]; - if ((env = getenv("TMPDIR")) != NULL) - [environment - setObject: [OFString stringWithUTF8String: env] - forKey: @"TMPDIR"]; - if ((env = getenv("USER")) != NULL) - [environment - setObject: [OFString stringWithUTF8String: env] - forKey: @"USER"]; + if ((env = getenv("HOME")) != NULL) { + OFString *home = [[[OFString alloc] + initWithUTF8StringNoCopy: env + freeWhenDone: NO] autorelease]; + [environment setObject: home + forKey: @"HOME"]; + } + if ((env = getenv("PATH")) != NULL) { + OFString *path = [[[OFString alloc] + initWithUTF8StringNoCopy: env + freeWhenDone: NO] autorelease]; + [environment setObject: path + forKey: @"PATH"]; + } + if ((env = getenv("SHELL")) != NULL) { + OFString *shell = [[[OFString alloc] + initWithUTF8StringNoCopy: env + freeWhenDone: NO] autorelease]; + [environment setObject: shell + forKey: @"SHELL"]; + } + if ((env = getenv("TMPDIR")) != NULL) { + OFString *tmpdir = [[[OFString alloc] + initWithUTF8StringNoCopy: env + freeWhenDone: NO] autorelease]; + [environment setObject: tmpdir + forKey: @"TMPDIR"]; + } + if ((env = getenv("USER")) != NULL) { + OFString *user = [[[OFString alloc] + initWithUTF8StringNoCopy: env + freeWhenDone: NO] autorelease]; + [environment setObject: user + forKey: @"USER"]; + } objc_autoreleasePoolPop(pool); #endif [environment makeImmutable];