@@ -219,7 +219,8 @@ int32_t GPBCodedInputStreamReadTag(GPBCodedInputStreamState *state) {
219
219
if (size == 0 ) {
220
220
result = @" " ;
221
221
} else {
222
- CheckSize (state, size);
222
+ size_t size2 = (size_t )size; // Cast safe on 32bit because of CheckFieldSize() above.
223
+ CheckSize (state, size2);
223
224
result = [[NSString alloc ] initWithBytes: &state->bytes[state->bufferPos]
224
225
length: ns_size
225
226
encoding: NSUTF8StringEncoding];
@@ -239,8 +240,9 @@ int32_t GPBCodedInputStreamReadTag(GPBCodedInputStreamState *state) {
239
240
NSData *GPBCodedInputStreamReadRetainedBytes (GPBCodedInputStreamState *state) {
240
241
uint64_t size = GPBCodedInputStreamReadUInt64 (state);
241
242
CheckFieldSize (size);
243
+ size_t size2 = (size_t )size; // Cast safe on 32bit because of CheckFieldSize() above.
244
+ CheckSize (state, size2);
242
245
NSUInteger ns_size = (NSUInteger )size;
243
- CheckSize (state, size);
244
246
NSData *result = [[NSData alloc ] initWithBytes: state->bytes + state->bufferPos length: ns_size];
245
247
state->bufferPos += size;
246
248
return result;
@@ -249,8 +251,9 @@ int32_t GPBCodedInputStreamReadTag(GPBCodedInputStreamState *state) {
249
251
NSData *GPBCodedInputStreamReadRetainedBytesNoCopy (GPBCodedInputStreamState *state) {
250
252
uint64_t size = GPBCodedInputStreamReadUInt64 (state);
251
253
CheckFieldSize (size);
254
+ size_t size2 = (size_t )size; // Cast safe on 32bit because of CheckFieldSize() above.
255
+ CheckSize (state, size2);
252
256
NSUInteger ns_size = (NSUInteger )size;
253
- CheckSize (state, size);
254
257
// Cast is safe because freeWhenDone is NO.
255
258
NSData *result = [[NSData alloc ] initWithBytesNoCopy: (void *)(state->bytes + state->bufferPos)
256
259
length: ns_size
@@ -338,7 +341,8 @@ - (BOOL)skipField:(int32_t)tag {
338
341
case GPBWireFormatLengthDelimited: {
339
342
uint64_t size = GPBCodedInputStreamReadUInt64 (&state_);
340
343
CheckFieldSize (size);
341
- SkipRawData (&state_, size);
344
+ size_t size2 = (size_t )size; // Cast safe on 32bit because of CheckFieldSize() above.
345
+ SkipRawData (&state_, size2);
342
346
return YES ;
343
347
}
344
348
case GPBWireFormatStartGroup:
@@ -441,7 +445,8 @@ - (void)readMessage:(GPBMessage *)message
441
445
CheckRecursionLimit (&state_);
442
446
uint64_t length = GPBCodedInputStreamReadUInt64 (&state_);
443
447
CheckFieldSize (length);
444
- size_t oldLimit = GPBCodedInputStreamPushLimit (&state_, length);
448
+ size_t length2 = (size_t )length; // Cast safe on 32bit because of CheckFieldSize() above.
449
+ size_t oldLimit = GPBCodedInputStreamPushLimit (&state_, length2);
445
450
++state_.recursionDepth ;
446
451
[message mergeFromCodedInputStream: self extensionRegistry: extensionRegistry];
447
452
GPBCodedInputStreamCheckLastTagWas (&state_, 0 );
@@ -456,7 +461,8 @@ - (void)readMapEntry:(id)mapDictionary
456
461
CheckRecursionLimit (&state_);
457
462
uint64_t length = GPBCodedInputStreamReadUInt64 (&state_);
458
463
CheckFieldSize (length);
459
- size_t oldLimit = GPBCodedInputStreamPushLimit (&state_, length);
464
+ size_t length2 = (size_t )length; // Cast safe on 32bit because of CheckFieldSize() above.
465
+ size_t oldLimit = GPBCodedInputStreamPushLimit (&state_, length2);
460
466
++state_.recursionDepth ;
461
467
GPBDictionaryReadEntry (mapDictionary, self, extensionRegistry, field, parentMessage);
462
468
GPBCodedInputStreamCheckLastTagWas (&state_, 0 );
0 commit comments