瀏覽代碼

Merge pull request #193 from siberianisaev/issue_187

fix logic error 'array access results in a null pointer dereference'
nathan spindel 11 年之前
父節點
當前提交
9a3debf42d
共有 1 個文件被更改,包括 7 次插入1 次删除
  1. 7 1
      SocketRocket/SRWebSocket.m

+ 7 - 1
SocketRocket/SRWebSocket.m

@@ -1287,7 +1287,11 @@ static const size_t SRFrameHeaderOverhead = 32;
 {
     [self assertOnWorkQueue];
     
-    NSAssert(data == nil || [data isKindOfClass:[NSData class]] || [data isKindOfClass:[NSString class]], @"Function expects nil, NSString or NSData");
+    if (nil == data) {
+        return;
+    }
+    
+    NSAssert([data isKindOfClass:[NSData class]] || [data isKindOfClass:[NSString class]], @"NSString or NSData");
     
     size_t payloadLength = [data isKindOfClass:[NSString class]] ? [(NSString *)data lengthOfBytesUsingEncoding:NSUTF8StringEncoding] : [data length];
         
@@ -1318,6 +1322,8 @@ static const size_t SRFrameHeaderOverhead = 32;
         unmasked_payload = (uint8_t *)[data bytes];
     } else if ([data isKindOfClass:[NSString class]]) {
         unmasked_payload =  (const uint8_t *)[data UTF8String];
+    } else {
+        return;
     }
     
     if (payloadLength < 126) {