Title: [167968] trunk/Source/WebKit2
Revision
167968
Author
m...@apple.com
Date
2014-04-29 16:40:49 -0700 (Tue, 29 Apr 2014)

Log Message

<rdar://problem/16745596> [Cocoa] Crash when invoking a method with an unsigned parameter on a remote object
https://bugs.webkit.org/show_bug.cgi?id=132366

Reviewed by Anders Carlsson.

* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeInvocation): Handle the 'I' type code. Interpret the 'q' and 'Q' type codes in an
architecture-independent manner.
(decodeInvocationArguments): Ditto.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (167967 => 167968)


--- trunk/Source/WebKit2/ChangeLog	2014-04-29 23:34:29 UTC (rev 167967)
+++ trunk/Source/WebKit2/ChangeLog	2014-04-29 23:40:49 UTC (rev 167968)
@@ -1,3 +1,15 @@
+2014-04-29  Dan Bernstein  <m...@apple.com>
+
+        <rdar://problem/16745596> [Cocoa] Crash when invoking a method with an unsigned parameter on a remote object
+        https://bugs.webkit.org/show_bug.cgi?id=132366
+
+        Reviewed by Anders Carlsson.
+
+        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
+        (encodeInvocation): Handle the 'I' type code. Interpret the 'q' and 'Q' type codes in an
+        architecture-independent manner.
+        (decodeInvocationArguments): Ditto.
+
 2014-04-29  Roger Fong  <roger_f...@apple.com>
 
         Don't immediately snapshot plugin to allow for proper dominant plugin detection.

Modified: trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm (167967 => 167968)


--- trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm	2014-04-29 23:34:29 UTC (rev 167967)
+++ trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm	2014-04-29 23:40:49 UTC (rev 167968)
@@ -146,6 +146,15 @@
             break;
         }
 
+        // unsigned
+        case 'I': {
+            unsigned value;
+            [invocation getArgument:&value atIndex:i];
+
+            encodeToObjectStream(encoder, @(value));
+            break;
+        }
+
         // char
         case 'c': {
             char value;
@@ -164,18 +173,18 @@
             break;
         }
 
-        // NSInteger
+        // long
         case 'q': {
-            NSInteger value;
+            long value;
             [invocation getArgument:&value atIndex:i];
 
             encodeToObjectStream(encoder, @(value));
             break;
         }
 
-        // NSUInteger
+        // unsigned long
         case 'Q': {
-            NSUInteger value;
+            unsigned long value;
             [invocation getArgument:&value atIndex:i];
 
             encodeToObjectStream(encoder, @(value));
@@ -421,6 +430,13 @@
             break;
         }
 
+        // unsigned
+        case 'I': {
+            unsigned value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) unsignedIntValue];
+            [invocation setArgument:&value atIndex:i];
+            break;
+        }
+
         // char
         case 'c': {
             char value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) charValue];
@@ -435,16 +451,16 @@
             break;
         }
 
-        // NSInteger
+        // long
         case 'q': {
-            NSInteger value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) integerValue];
+            long value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) longValue];
             [invocation setArgument:&value atIndex:i];
             break;
         }
 
-        // NSUInteger
+        // unsigned long
         case 'Q': {
-            NSUInteger value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) unsignedIntegerValue];
+            unsigned long value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) unsignedLongValue];
             [invocation setArgument:&value atIndex:i];
             break;
         }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to