Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit e25b6b7

Browse files
authored
Merge pull request #497 from Microsoft/prevent-rollback-crash
Prevent crashes during rollbacks
2 parents c376c30 + e52b95a commit e25b6b7

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

ios/CodePush/CodePush.m

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,16 @@ - (void)rollbackPackage
455455
{
456456
NSError *error;
457457
NSDictionary *failedPackage = [CodePushPackage getCurrentPackage:&error];
458-
459-
// Write the current package's metadata to the "failed list"
460-
[self saveFailedUpdate:failedPackage];
458+
if (!failedPackage) {
459+
if (error) {
460+
CPLog(@"Error getting current update metadata during rollback: %@", error);
461+
} else {
462+
CPLog(@"Attempted to perform a rollback when there is no current update");
463+
}
464+
} else {
465+
// Write the current package's metadata to the "failed list"
466+
[self saveFailedUpdate:failedPackage];
467+
}
461468

462469
// Rollback to the previous version and de-register the new update
463470
[CodePushPackage rollbackPackage];

ios/CodePush/CodePushPackage.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,11 +491,13 @@ + (void)rollbackPackage
491491
NSError *error;
492492
NSMutableDictionary *info = [self getCurrentPackageInfo:&error];
493493
if (error) {
494+
CPLog(@"Error getting current package info: %@", error);
494495
return;
495496
}
496497

497498
NSString *currentPackageFolderPath = [self getCurrentPackageFolderPath:&error];
498499
if (error) {
500+
CPLog(@"Error getting current package folder path: %@", error);
499501
return;
500502
}
501503

@@ -515,11 +517,9 @@ + (void)rollbackPackage
515517
+ (void)updateCurrentPackageInfo:(NSDictionary *)packageInfo
516518
error:(NSError **)error
517519
{
518-
519520
NSData *packageInfoData = [NSJSONSerialization dataWithJSONObject:packageInfo
520521
options:0
521522
error:error];
522-
523523
NSString *packageInfoString = [[NSString alloc] initWithData:packageInfoData
524524
encoding:NSUTF8StringEncoding];
525525
[packageInfoString writeToFile:[self getStatusFilePath]

0 commit comments

Comments
 (0)