Skip to content

Commit

Permalink
fix storage may index out of range
Browse files Browse the repository at this point in the history
  • Loading branch information
leeway1208 committed Feb 8, 2022
1 parent e3a853b commit fe7b797
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 21 deletions.
4 changes: 2 additions & 2 deletions CocoaMQTT.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "CocoaMQTT"
s.version = "2.0.3-beta2"
s.version = "2.0.3-beta3"
s.summary = "MQTT v3.1.1 client library for iOS and OS X written with Swift 5"
s.homepage = "https://github.com/emqx/CocoaMQTT"
s.license = { :type => "MIT" }
Expand All @@ -12,7 +12,7 @@ Pod::Spec.new do |s|
s.ios.deployment_target = "9.0"
s.tvos.deployment_target = "10.0"
# s.watchos.deployment_target = "2.0"
s.source = { :git => "https://github.com/emqx/CocoaMQTT.git", :tag => "2.0.3-beta2"}
s.source = { :git => "https://github.com/emqx/CocoaMQTT.git", :tag => "2.0.3-beta3"}
s.default_subspec = 'Core'

s.subspec 'Core' do |ss|
Expand Down
16 changes: 0 additions & 16 deletions CocoaMQTT.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -117,18 +117,12 @@
9228E8A927610A1000063DF2 /* MqttDecodePubRec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E89327610A1000063DF2 /* MqttDecodePubRec.swift */; };
9228E8AA27610A1000063DF2 /* MqttDecodePubRec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E89327610A1000063DF2 /* MqttDecodePubRec.swift */; };
9228E8AB27610A1000063DF2 /* MqttDecodePubRec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E89327610A1000063DF2 /* MqttDecodePubRec.swift */; };
9228E8AD27610A2700063DF2 /* FrameSubAck5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8AC27610A2700063DF2 /* FrameSubAck5.swift */; };
9228E8AE27610A2700063DF2 /* FrameSubAck5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8AC27610A2700063DF2 /* FrameSubAck5.swift */; };
9228E8AF27610A2700063DF2 /* FrameSubAck5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8AC27610A2700063DF2 /* FrameSubAck5.swift */; };
9228E8B227610A4300063DF2 /* CocoaMQTT5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8B027610A4300063DF2 /* CocoaMQTT5.swift */; };
9228E8B327610A4300063DF2 /* CocoaMQTT5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8B027610A4300063DF2 /* CocoaMQTT5.swift */; };
9228E8B427610A4300063DF2 /* CocoaMQTT5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8B027610A4300063DF2 /* CocoaMQTT5.swift */; };
9228E8B527610A4300063DF2 /* CocoaMQTT5Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8B127610A4300063DF2 /* CocoaMQTT5Message.swift */; };
9228E8B627610A4300063DF2 /* CocoaMQTT5Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8B127610A4300063DF2 /* CocoaMQTT5Message.swift */; };
9228E8B727610A4300063DF2 /* CocoaMQTT5Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8B127610A4300063DF2 /* CocoaMQTT5Message.swift */; };
9228E8B927610A6600063DF2 /* CocoaMQTTReader5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8B827610A6600063DF2 /* CocoaMQTTReader5.swift */; };
9228E8BA27610A6600063DF2 /* CocoaMQTTReader5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8B827610A6600063DF2 /* CocoaMQTTReader5.swift */; };
9228E8BB27610A6600063DF2 /* CocoaMQTTReader5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8B827610A6600063DF2 /* CocoaMQTTReader5.swift */; };
9228E8BE27610A7B00063DF2 /* MqttSubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8BC27610A7B00063DF2 /* MqttSubscription.swift */; };
9228E8BF27610A7B00063DF2 /* MqttSubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8BC27610A7B00063DF2 /* MqttSubscription.swift */; };
9228E8C027610A7B00063DF2 /* MqttSubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9228E8BC27610A7B00063DF2 /* MqttSubscription.swift */; };
Expand Down Expand Up @@ -254,10 +248,8 @@
9228E89127610A1000063DF2 /* MqttDecodePubRel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MqttDecodePubRel.swift; sourceTree = "<group>"; };
9228E89227610A1000063DF2 /* MqttDecodeUnsubAck.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MqttDecodeUnsubAck.swift; sourceTree = "<group>"; };
9228E89327610A1000063DF2 /* MqttDecodePubRec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MqttDecodePubRec.swift; sourceTree = "<group>"; };
9228E8AC27610A2700063DF2 /* FrameSubAck5.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FrameSubAck5.swift; sourceTree = "<group>"; };
9228E8B027610A4300063DF2 /* CocoaMQTT5.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CocoaMQTT5.swift; sourceTree = "<group>"; };
9228E8B127610A4300063DF2 /* CocoaMQTT5Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CocoaMQTT5Message.swift; sourceTree = "<group>"; };
9228E8B827610A6600063DF2 /* CocoaMQTTReader5.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CocoaMQTTReader5.swift; sourceTree = "<group>"; };
9228E8BC27610A7B00063DF2 /* MqttSubscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MqttSubscription.swift; sourceTree = "<group>"; };
9228E8BD27610A7B00063DF2 /* MqttPublishProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MqttPublishProperties.swift; sourceTree = "<group>"; };
9228E8C427610A8500063DF2 /* CocoaMQTTProperty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CocoaMQTTProperty.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -353,7 +345,6 @@
9228E8B127610A4300063DF2 /* CocoaMQTT5Message.swift */,
8225B4D0227B2F2900E4DB51 /* CocoaMQTTDeliver.swift */,
82CF1FAF22943B2100DF539A /* CocoaMQTTReader.swift */,
9228E8B827610A6600063DF2 /* CocoaMQTTReader5.swift */,
040997791C1B14F0006B5A6D /* Supporting Files */,
);
path = Source;
Expand Down Expand Up @@ -390,7 +381,6 @@
8D43DE5522FAEDDA00D9A06B /* FramePubComp.swift */,
8D43DE5922FAF37500D9A06B /* FrameSubscribe.swift */,
8D43DE5B22FAF6A400D9A06B /* FrameSubAck.swift */,
9228E8AC27610A2700063DF2 /* FrameSubAck5.swift */,
8D43DE5D22FAF9E500D9A06B /* FrameUnsubscribe.swift */,
8D43DE5F22FAFC2700D9A06B /* FrameUnsubAck.swift */,
8D43DE6122FAFDA700D9A06B /* FramePingReq.swift */,
Expand Down Expand Up @@ -667,13 +657,11 @@
1111249424BB515E00E2DFBC /* Frame.swift in Sources */,
9228E89B27610A1000063DF2 /* MqttDecodeConnAck.swift in Sources */,
1111249524BB515E00E2DFBC /* FrameUnsubscribe.swift in Sources */,
9228E8AE27610A2700063DF2 /* FrameSubAck5.swift in Sources */,
9228E8BF27610A7B00063DF2 /* MqttSubscription.swift in Sources */,
9228E8A727610A1000063DF2 /* MqttDecodeUnsubAck.swift in Sources */,
1111249624BB515E00E2DFBC /* CocoaMQTTStorage.swift in Sources */,
1111249724BB515E00E2DFBC /* FrameUnsubAck.swift in Sources */,
9228E89E27610A1000063DF2 /* MqttDecodePubComp.swift in Sources */,
9228E8BA27610A6600063DF2 /* CocoaMQTTReader5.swift in Sources */,
1111249824BB515E00E2DFBC /* CocoaMQTTMessage.swift in Sources */,
1111249924BB515E00E2DFBC /* CocoaMQTTDeliver.swift in Sources */,
1111249A24BB515E00E2DFBC /* CocoaMQTTTimer.swift in Sources */,
Expand Down Expand Up @@ -718,13 +706,11 @@
111124BE24BB516300E2DFBC /* Frame.swift in Sources */,
9228E89C27610A1000063DF2 /* MqttDecodeConnAck.swift in Sources */,
111124BF24BB516300E2DFBC /* FrameUnsubscribe.swift in Sources */,
9228E8AF27610A2700063DF2 /* FrameSubAck5.swift in Sources */,
9228E8C027610A7B00063DF2 /* MqttSubscription.swift in Sources */,
9228E8A827610A1000063DF2 /* MqttDecodeUnsubAck.swift in Sources */,
111124C024BB516300E2DFBC /* CocoaMQTTStorage.swift in Sources */,
111124C124BB516300E2DFBC /* FrameUnsubAck.swift in Sources */,
9228E89F27610A1000063DF2 /* MqttDecodePubComp.swift in Sources */,
9228E8BB27610A6600063DF2 /* CocoaMQTTReader5.swift in Sources */,
111124C224BB516300E2DFBC /* CocoaMQTTMessage.swift in Sources */,
111124C324BB516300E2DFBC /* CocoaMQTTDeliver.swift in Sources */,
111124C424BB516300E2DFBC /* CocoaMQTTTimer.swift in Sources */,
Expand Down Expand Up @@ -769,13 +755,11 @@
8225B53B227C2FC600E4DB51 /* Frame.swift in Sources */,
9228E89A27610A1000063DF2 /* MqttDecodeConnAck.swift in Sources */,
8D43DE5E22FAF9E500D9A06B /* FrameUnsubscribe.swift in Sources */,
9228E8AD27610A2700063DF2 /* FrameSubAck5.swift in Sources */,
9228E8BE27610A7B00063DF2 /* MqttSubscription.swift in Sources */,
9228E8A627610A1000063DF2 /* MqttDecodeUnsubAck.swift in Sources */,
8D14C7652349BAF5002D959E /* CocoaMQTTStorage.swift in Sources */,
8D43DE6022FAFC2700D9A06B /* FrameUnsubAck.swift in Sources */,
9228E89D27610A1000063DF2 /* MqttDecodePubComp.swift in Sources */,
9228E8B927610A6600063DF2 /* CocoaMQTTReader5.swift in Sources */,
8225B53C227C2FC600E4DB51 /* CocoaMQTTMessage.swift in Sources */,
8225B53D227C2FC600E4DB51 /* CocoaMQTTDeliver.swift in Sources */,
8225B53E227C2FC600E4DB51 /* CocoaMQTTTimer.swift in Sources */,
Expand Down
2 changes: 1 addition & 1 deletion Example/Example/ChatViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class ChatViewController: UIViewController {
if mqttVersion == "3.1.1" {
mqtt!.publish("chat/room/animals/client/" + animal!, withString: message!, qos: .qos1)
}else if mqttVersion == "5.0" {
mqtt5!.publish("chat/room/animals/client/" + animal!, withString: message!, qos: .qos1, DUP: false, retained: false, properties: publishProperties)
mqtt5!.publish("chat/room/animals/client/" + animal!, withString: message!, qos: .qos1, DUP: true, retained: false, properties: publishProperties)
}

messageTextView.text = ""
Expand Down
13 changes: 11 additions & 2 deletions Source/CocoaMQTTStorage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ final class CocoaMQTTStorage: CocoaMQTTStorageProtocol {
var versionDefault: UserDefaults = UserDefaults()

init?(){
self.versionDefault = UserDefaults()
versionDefault = UserDefaults()
}

init?(by clientId: String) {
Expand All @@ -50,7 +50,13 @@ final class CocoaMQTTStorage: CocoaMQTTStorageProtocol {
}

deinit {
userDefault.synchronize()
if(userDefault != nil){
userDefault.synchronize()
}

if(versionDefault != nil){
versionDefault.synchronize()
}
}

func setMQTTVersion(_ version : String){
Expand Down Expand Up @@ -112,6 +118,9 @@ final class CocoaMQTTStorage: CocoaMQTTStorageProtocol {
}

private func parse(_ bytes: [UInt8]) -> (UInt8, [UInt8])? {
guard bytes.count > 5 else {
return nil
}
/// bytes 1..<5 may be 'Remaining Length'
for i in 1 ..< 5 {
if (bytes[i] & 0x80) == 0 {
Expand Down

0 comments on commit fe7b797

Please sign in to comment.