Browse Source

Check return value on write of raw pointer

Felix Jendrusch 7 years ago
parent
commit
1da9ffe394
1 changed files with 4 additions and 1 deletions
  1. 4 1
      objectivec/GPBCodedOutputStream.m

+ 4 - 1
objectivec/GPBCodedOutputStream.m

@@ -942,7 +942,10 @@ static void GPBWriteRawLittleEndian64(GPBOutputBufferState *state,
       state_.position = length;
       state_.position = length;
     } else {
     } else {
       // Write is very big.  Let's do it all at once.
       // Write is very big.  Let's do it all at once.
-      [state_.output write:((uint8_t *)value) + offset maxLength:length];
+      NSInteger written = [state_.output write:((uint8_t *)value) + offset maxLength:length];
+      if (written != (NSInteger)length) {
+        [NSException raise:GPBCodedOutputStreamException_WriteFailed format:@""];
+      }
     }
     }
   }
   }
 }
 }