diff --git a/mozilla/camino/src/formfill/KeychainService.mm b/mozilla/camino/src/formfill/KeychainService.mm index 0df1148d9be..8304367d7f8 100644 --- a/mozilla/camino/src/formfill/KeychainService.mm +++ b/mozilla/camino/src/formfill/KeychainService.mm @@ -566,7 +566,9 @@ int KeychainPrefChangedCallback(const char* inPref, void* unused) } - (void)expirationTimerFired:(NSTimer*)theTimer { - [self cacheKeychainEntry:nil forKey:[theTimer userInfo]]; + // Ensure that the key will survive past the timer invalidation + NSString* key = [[[theTimer userInfo] retain] autorelease]; + [self cacheKeychainEntry:nil forKey:key]; } @end