ソースを参照

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 {