Index: src/OFProcess.m ================================================================== --- src/OFProcess.m +++ src/OFProcess.m @@ -405,19 +405,23 @@ return envp; } #else - (of_char16_t*)OF_environmentForDictionary: (OFDictionary*)environment { - OFDataArray *env = [OFDataArray dataArrayWithItemSize: 2]; + OFDataArray *env; OFEnumerator *keyEnumerator, *objectEnumerator; OFString *key, *object; const of_char16_t equal = '='; - const of_char16_t zero = 0; + const of_char16_t zero[2] = { 0, 0 }; + + if (environment == nil) + return NULL; + + env = [OFDataArray dataArrayWithItemSize: sizeof(of_char16_t)]; keyEnumerator = [environment keyEnumerator]; objectEnumerator = [environment objectEnumerator]; - while ((key = [keyEnumerator nextObject]) != nil && (object = [objectEnumerator nextObject]) != nil) { [env addItems: [key UTF16String] count: [key UTF16StringLength]]; [env addItems: &equal @@ -425,12 +429,12 @@ [env addItems: [object UTF16String] count: [object UTF16StringLength]]; [env addItems: &zero count: 1]; } - [env addItems: &zero - count: 1]; + [env addItems: zero + count: 2]; return [env items]; } #endif