Преглед изворни кода

Merge pull request #983 from deltachat/fix-dangling-pointer

fix potentially dangling pointer and bad arraysize
cyBerta пре 4 година
родитељ
комит
f970f40c6c
1 измењених фајлова са 4 додато и 3 уклоњено
  1. 4 3
      DcCore/DcCore/DC/Wrapper.swift

+ 4 - 3
DcCore/DcCore/DC/Wrapper.swift

@@ -259,9 +259,10 @@ public class DcContext {
         return DcArray(arrayPointer: dc_get_fresh_msgs(contextPointer))
     }
 
-    public func markSeenMessages(messageIds: [UInt32], count: Int = 1) {
-        let ptr = UnsafePointer(messageIds)
-        dc_markseen_msgs(contextPointer, ptr, Int32(count))
+    public func markSeenMessages(messageIds: [UInt32]) {
+        messageIds.withUnsafeBufferPointer { ptr in
+            dc_markseen_msgs(contextPointer, ptr.baseAddress, Int32(ptr.count))
+        }
     }
 
     public func getChatMessages(chatId: Int) -> OpaquePointer {