You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2017/01/10 23:35:25 UTC
ios commit: CB-12341 - Possible crash in [CDVUserAgentUtil
releaseLock:]
Repository: cordova-ios
Updated Branches:
refs/heads/master 7ec3bdb46 -> 6df46b7ba
CB-12341 - Possible crash in [CDVUserAgentUtil releaseLock:]
Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/6df46b7b
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/6df46b7b
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/6df46b7b
Branch: refs/heads/master
Commit: 6df46b7bad8da2f49560389a38a6d3929fabfe01
Parents: 7ec3bdb
Author: Shazron Abdullah <sh...@apache.org>
Authored: Tue Jan 10 15:39:24 2017 -0800
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Tue Jan 10 15:39:24 2017 -0800
----------------------------------------------------------------------
CordovaLib/Classes/Public/CDVUserAgentUtil.m | 2 +-
tests/CordovaLibTests/CDVUserAgentTest.m | 19 +++++++++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6df46b7b/CordovaLib/Classes/Public/CDVUserAgentUtil.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/Public/CDVUserAgentUtil.m b/CordovaLib/Classes/Public/CDVUserAgentUtil.m
index b589e1f..b17107e 100644
--- a/CordovaLib/Classes/Public/CDVUserAgentUtil.m
+++ b/CordovaLib/Classes/Public/CDVUserAgentUtil.m
@@ -90,7 +90,7 @@ static NSMutableArray* gPendingSetUserAgentBlocks = nil;
+ (void)releaseLock:(NSInteger*)lockToken
{
- if (*lockToken == 0) {
+ if (lockToken == nil || *lockToken == 0) {
return;
}
NSAssert(gCurrentLockToken == *lockToken, @"Got token %ld, expected %ld", (long)*lockToken, (long)gCurrentLockToken);
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/6df46b7b/tests/CordovaLibTests/CDVUserAgentTest.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVUserAgentTest.m b/tests/CordovaLibTests/CDVUserAgentTest.m
index a028158..d97ae47 100644
--- a/tests/CordovaLibTests/CDVUserAgentTest.m
+++ b/tests/CordovaLibTests/CDVUserAgentTest.m
@@ -21,6 +21,7 @@
#import "CDVWebViewTest.h"
#import <Cordova/CDVViewController.h>
+#import <Cordova/CDVUserAgentUtil.h>
#import "AppDelegate.h"
@interface CDVUserAgentTestViewController : UIViewController
@@ -159,4 +160,22 @@
XCTAssertTrue([cordovaUserAgent2 hasPrefix:rootVc.vc2.baseUserAgent], @"Cordova user agent should be based on base user agent.");
}
+- (void)testUserAgentReleaseLock
+{
+ __block NSInteger myLockToken;
+
+ [CDVUserAgentUtil acquireLock:^(NSInteger lockToken) {
+ myLockToken = lockToken;
+ [CDVUserAgentUtil releaseLock:&myLockToken];
+
+ NSInteger nullInteger = 0;
+ // test releasing NULL token
+ [CDVUserAgentUtil releaseLock:&nullInteger];
+ NSInteger* ni = nil;
+ // test releasing nil object
+ [CDVUserAgentUtil releaseLock:ni];
+ }];
+}
+
+
@end
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org