Selaa lähdekoodia

ios: be resilient to invalid UUIDs

master
Saúl Ibarra Corretgé 6 vuotta sitten
vanhempi
commit
431a221c63
1 muutettua tiedostoa jossa 37 lisäystä ja 1 poistoa
  1. 37
    1
      ios/sdk/src/callkit/CallKit.m

+ 37
- 1
ios/sdk/src/callkit/CallKit.m Näytä tiedosto

74
 #endif
74
 #endif
75
 
75
 
76
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
76
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
77
+
78
+    if (!callUUID_) {
79
+        reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil);
80
+        return;
81
+    }
82
+
77
     CXEndCallAction *action
83
     CXEndCallAction *action
78
         = [[CXEndCallAction alloc] initWithCallUUID:callUUID_];
84
         = [[CXEndCallAction alloc] initWithCallUUID:callUUID_];
79
     [self requestTransaction:[[CXTransaction alloc] initWithAction:action]
85
     [self requestTransaction:[[CXTransaction alloc] initWithAction:action]
91
 #endif
97
 #endif
92
 
98
 
93
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
99
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
100
+
101
+    if (!callUUID_) {
102
+        reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil);
103
+        return;
104
+    }
105
+
94
     CXSetMutedCallAction *action
106
     CXSetMutedCallAction *action
95
         = [[CXSetMutedCallAction alloc] initWithCallUUID:callUUID_ muted:muted];
107
         = [[CXSetMutedCallAction alloc] initWithCallUUID:callUUID_ muted:muted];
96
     [self requestTransaction:[[CXTransaction alloc] initWithAction:action]
108
     [self requestTransaction:[[CXTransaction alloc] initWithAction:action]
123
     NSLog(@"[RNCallKit][startCall] callUUID = %@", callUUID);
135
     NSLog(@"[RNCallKit][startCall] callUUID = %@", callUUID);
124
 #endif
136
 #endif
125
 
137
 
138
+    NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
139
+
140
+    if (!callUUID_) {
141
+        reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil);
142
+        return;
143
+    }
144
+
126
     // Don't start a new call if there's an active call for the specified
145
     // Don't start a new call if there's an active call for the specified
127
     // callUUID. JitsiMeetView was configured for an incoming call.
146
     // callUUID. JitsiMeetView was configured for an incoming call.
128
     if ([JMCallKitProxy hasActiveCallForUUID:callUUID]) {
147
     if ([JMCallKitProxy hasActiveCallForUUID:callUUID]) {
132
 
151
 
133
     CXHandle *handle_
152
     CXHandle *handle_
134
         = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:handle];
153
         = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:handle];
135
-    NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
136
     CXStartCallAction *action
154
     CXStartCallAction *action
137
         = [[CXStartCallAction alloc] initWithCallUUID:callUUID_
155
         = [[CXStartCallAction alloc] initWithCallUUID:callUUID_
138
                                                handle:handle_];
156
                                                handle:handle_];
146
                            resolve:(RCTPromiseResolveBlock)resolve
164
                            resolve:(RCTPromiseResolveBlock)resolve
147
                             reject:(RCTPromiseRejectBlock)reject) {
165
                             reject:(RCTPromiseRejectBlock)reject) {
148
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
166
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
167
+
168
+    if (!callUUID_) {
169
+        reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil);
170
+        return;
171
+    }
172
+
149
     [JMCallKitProxy reportCallWith:callUUID_
173
     [JMCallKitProxy reportCallWith:callUUID_
150
                            endedAt:nil
174
                            endedAt:nil
151
                             reason:CXCallEndedReasonFailed];
175
                             reason:CXCallEndedReasonFailed];
157
                                       resolve:(RCTPromiseResolveBlock)resolve
181
                                       resolve:(RCTPromiseResolveBlock)resolve
158
                                        reject:(RCTPromiseRejectBlock)reject) {
182
                                        reject:(RCTPromiseRejectBlock)reject) {
159
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
183
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
184
+
185
+    if (!callUUID_) {
186
+        reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil);
187
+        return;
188
+    }
189
+
160
     [JMCallKitProxy reportOutgoingCallWith:callUUID_
190
     [JMCallKitProxy reportOutgoingCallWith:callUUID_
161
                                connectedAt:nil];
191
                                connectedAt:nil];
162
     resolve(nil);
192
     resolve(nil);
175
 #endif
205
 #endif
176
 
206
 
177
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
207
     NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID];
208
+
209
+    if (!callUUID_) {
210
+        reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil);
211
+        return;
212
+    }
213
+
178
     NSString *displayName = options[@"displayName"];
214
     NSString *displayName = options[@"displayName"];
179
     BOOL hasVideo = [(NSNumber*)options[@"hasVideo"] boolValue];
215
     BOOL hasVideo = [(NSNumber*)options[@"hasVideo"] boolValue];
180
 
216
 

Loading…
Peruuta
Tallenna