Check return result of fwrite [Audio Module]

Description:
On ChromeOS/ARM, compiler enforces to check return result of a function.
Currently, we don't check return result of fwrite, it causes building errors.

The following files need to patch. The patch should be similar, before I patch all
of them, I will start with 2 files, please take a quick look, if the patch is OK,
I will continue and upload a new patch that covers all of them.
it to all of them.
Review URL: https://webrtc-codereview.appspot.com/566016

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2345 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/src/modules/audio_coding/codecs/cng/test/CNG.cc b/src/modules/audio_coding/codecs/cng/test/CNG.cc
index b247831..e3cabbb 100644
--- a/src/modules/audio_coding/codecs/cng/test/CNG.cc
+++ b/src/modules/audio_coding/codecs/cng/test/CNG.cc
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
  *
  *  Use of this source code is governed by a BSD-style license
  *  that can be found in the LICENSE file in the root of the source
@@ -38,12 +38,12 @@
     
     short size;
     int samps=0;
-    
+
     if (argc < 5){
         printf("Usage:\n CNG.exe infile outfile samplingfreq(Hz) interval(ms) order\n\n");
         return(0);
     }
-    
+
     infile=fopen(argv[1],"rb");
     if (infile==NULL){
         printf("file %s does not exist\n",argv[1]);
@@ -53,12 +53,12 @@
     statefile=fopen("CNGVAD.d","wb");
     if (outfile==NULL){
         printf("file %s could not be created\n",argv[2]);
-        return(0); 
+        return(0);
     }
-    
+
     unsigned int fs=16000;
     short frameLen=fs/50;
-    
+
 #ifndef ASSIGN
     res=WebRtcCng_CreateEnc(&e_inst);
     if (res < 0) {
@@ -74,18 +74,18 @@
         fprintf(stderr,"\n\n Error in initialization: %d.\n\n", errtype);
         exit(EXIT_FAILURE);
     }
-    
+
 #else
-    
+
     // Test the Assign-functions
-    int Esize, Dsize;    
+    int Esize, Dsize;
     void *Eaddr, *Daddr;
-    
+
     res=WebRtcCng_AssignSizeEnc(&Esize);
     res=WebRtcCng_AssignSizeDec(&Dsize);
     Eaddr=malloc(Esize);
     Daddr=malloc(Dsize);
-    
+
     res=WebRtcCng_AssignEnc(&e_inst, Eaddr);
     if (res < 0) {
         /* exit if returned with error */
@@ -93,7 +93,7 @@
         fprintf(stderr,"\n\n Error in initialization: %d.\n\n", errtype);
         exit(EXIT_FAILURE);
     }
-    
+
     res=WebRtcCng_AssignDec(&d_inst, Daddr);
     if (res < 0) {
         /* exit if returned with error */
@@ -101,35 +101,34 @@
         fprintf(stderr,"\n\n Error in initialization: %d.\n\n", errtype);
         exit(EXIT_FAILURE);
     }
-    
+
 #endif
-    
-    res=WebRtcCng_InitEnc(e_inst,atoi(argv[3]),atoi(argv[4]),atoi(argv[5])); 
+
+    res=WebRtcCng_InitEnc(e_inst,atoi(argv[3]),atoi(argv[4]),atoi(argv[5]));
     if (res < 0) {
         /* exit if returned with error */
         errtype=WebRtcCng_GetErrorCodeEnc(e_inst);
         fprintf(stderr,"\n\n Error in initialization: %d.\n\n", errtype);
         exit(EXIT_FAILURE);
     }
-    
-    res=WebRtcCng_InitDec(d_inst); 
+
+    res=WebRtcCng_InitDec(d_inst);
     if (res < 0) {
         /* exit if returned with error */
         errtype=WebRtcCng_GetErrorCodeDec(d_inst);
         fprintf(stderr,"\n\n Error in initialization: %d.\n\n", errtype);
         exit(EXIT_FAILURE);
     }
-    
-    
+
     static bool firstSilent=true;
-    
+
     int numSamp=0;
     int speech=0;
     int silent=0;
     long cnt=0;
-    
+
     while(fread(anaSpeech,2,frameLen,infile)==frameLen){
-        
+
         cnt++;
         if (cnt==60){
             cnt=60;
@@ -139,9 +138,9 @@
         float temp[640];
         for(unsigned int j=0;j<frameLen;j++)
         temp[j]=(float)anaSpeech[j]; */
-        
+
         //        if(!WebRtcVad_Process(vinst, fs, anaSpeech, frameLen)){
-        
+
 
         if(1){ // Do CNG coding of entire file
 
@@ -154,10 +153,9 @@
                     fprintf(stderr,"\n\n Error in encoder: %d.\n\n", errtype);
                     exit(EXIT_FAILURE);
                 }
-                
-                
+
                 firstSilent=false;
-                
+
                 res=WebRtcCng_Encode(e_inst, &anaSpeech[frameLen/2], frameLen/2, SIDpkt,&size,1);
                 if (res < 0) {
                     /* exit if returned with error */
@@ -165,7 +163,7 @@
                     fprintf(stderr,"\n\n Error in encoder: %d.\n\n", errtype);
                     exit(EXIT_FAILURE);
                 }
-                
+
             }
             else{
                 res=WebRtcCng_Encode(e_inst, anaSpeech, frameLen/2, SIDpkt,&size,0);
@@ -183,7 +181,7 @@
                     exit(EXIT_FAILURE);
                 }
             }
-            
+
             if(size>0){
                 res=WebRtcCng_UpdateSid(d_inst,SIDpkt, size);
                 if (res < 0) {
@@ -205,21 +203,22 @@
         else{
             firstSilent=true;
             memcpy(genSpeech,anaSpeech,2*frameLen);
-            
+
             memset(anaSpeech,0,frameLen*2);
             memset(state,0,frameLen*2);
-            
+
         }
-        fwrite(genSpeech,2,frameLen,outfile);
-        fwrite(state,2,frameLen,statefile);
-        
+        if (fwrite(genSpeech, 2, frameLen,
+                   outfile) != static_cast<size_t>(frameLen)) {
+          return -1;
+        }
+        if (fwrite(state, 2, frameLen,
+                   statefile) != static_cast<size_t>(frameLen)) {
+          return -1;
+        }
     }
-    
     fclose(infile);
     fclose(outfile);
     fclose(statefile);
     return 0;
-}   
-
-
-
+}
diff --git a/src/modules/audio_coding/codecs/g711/test/testG711.cc b/src/modules/audio_coding/codecs/g711/test/testG711.cc
index 747f922..fd54522 100644
--- a/src/modules/audio_coding/codecs/g711/test/testG711.cc
+++ b/src/modules/audio_coding/codecs/g711/test/testG711.cc
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
  *
  *  Use of this source code is governed by a BSD-style license
  *  that can be found in the LICENSE file in the root of the source
@@ -129,16 +129,22 @@
             /* A-law encoding */
             stream_len = WebRtcG711_EncodeA(NULL, shortdata, framelength, streamdata);
             if (argc==6){
-                /* Write bits to file */
-                fwrite(streamdata,sizeof(unsigned char),stream_len,bitp);
+              /* Write bits to file */
+              if (fwrite(streamdata, sizeof(unsigned char), stream_len,
+                         bitp) != static_cast<size_t>(stream_len)) {
+                return -1;
+              }
             }
             err = WebRtcG711_DecodeA(NULL, streamdata, stream_len, decoded, speechType);
         } else if (!strcmp(law,"u")){
             /* u-law encoding */
             stream_len = WebRtcG711_EncodeU(NULL, shortdata, framelength, streamdata);
             if (argc==6){
-                /* Write bits to file */
-                fwrite(streamdata,sizeof(unsigned char),stream_len,bitp);
+              /* Write bits to file */
+              if (fwrite(streamdata, sizeof(unsigned char), stream_len,
+                         bitp) != static_cast<size_t>(stream_len)) {
+                return -1;
+              }
             }
             err = WebRtcG711_DecodeU(NULL, streamdata, stream_len, decoded, speechType);
         } else {
@@ -149,8 +155,11 @@
             /* exit if returned with error */
             printf("Error in encoder/decoder\n");
         } else {
-            /* Write coded speech to file */
-            fwrite(decoded,sizeof(short),framelength,outp);
+          /* Write coded speech to file */
+          if (fwrite(decoded, sizeof(short), framelength,
+                     outp) != static_cast<size_t>(framelength)) {
+            return -1;
+          }
         }
     }
 
diff --git a/src/modules/audio_coding/codecs/g722/test/testG722.cc b/src/modules/audio_coding/codecs/g722/test/testG722.cc
index 9ef8f2d..d2fdca3 100644
--- a/src/modules/audio_coding/codecs/g722/test/testG722.cc
+++ b/src/modules/audio_coding/codecs/g722/test/testG722.cc
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
  *
  *  Use of this source code is governed by a BSD-style license
  *  that can be found in the LICENSE file in the root of the source
@@ -133,10 +133,16 @@
             /* exit if returned with error */
             printf("Error in encoder/decoder\n");
         } else {
-            /* Write coded bits to file */
-            fwrite(streamdata,sizeof(short),stream_len/2,outbitp);
-            /* Write coded speech to file */
-            fwrite(decoded,sizeof(short),framelength,outp);
+          /* Write coded bits to file */
+          if (fwrite(streamdata, sizeof(short), stream_len/2,
+                     outbitp) != static_cast<size_t>(stream_len/2)) {
+            return -1;
+          }
+          /* Write coded speech to file */
+          if (fwrite(decoded, sizeof(short), framelength,
+                     outp) != static_cast<size_t>(framelength)) {
+            return -1;
+          }
         }
     }
 
@@ -154,4 +160,3 @@
 
     return 0;
 }
-
diff --git a/src/modules/audio_coding/codecs/iSAC/fix/test/kenny.c b/src/modules/audio_coding/codecs/iSAC/fix/test/kenny.c
index 1b9c44c..8b04c98 100644
--- a/src/modules/audio_coding/codecs/iSAC/fix/test/kenny.c
+++ b/src/modules/audio_coding/codecs/iSAC/fix/test/kenny.c
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
  *
  *  Use of this source code is governed by a BSD-style license
  *  that can be found in the LICENSE file in the root of the source
@@ -628,7 +628,10 @@
         errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst);
         printf("\nError in encoder: %d.\n", errtype);
       } else {
-        fwrite(streamdata, sizeof(char), stream_len, outbits);
+        if (fwrite(streamdata, sizeof(char),
+                   stream_len, outbits) != (size_t)stream_len) {
+          return -1;
+        }
       }
 
       cur_framesmpls += FRAMESAMPLES_10ms;
@@ -777,7 +780,10 @@
       }
 
       /* Write decoded speech frame to file */
-      fwrite(decoded, sizeof(WebRtc_Word16), declen, outp);
+      if (fwrite(decoded, sizeof(WebRtc_Word16),
+                 declen, outp) != (size_t)declen) {
+        return -1;
+      }
       //   fprintf( ratefile, "%f \n", stream_len / ( ((double)declen)/
       // ((double)FS) ) * 8 );
     } else {
diff --git a/src/modules/audio_coding/codecs/iSAC/main/test/ReleaseTest-API/ReleaseTest-API.cc b/src/modules/audio_coding/codecs/iSAC/main/test/ReleaseTest-API/ReleaseTest-API.cc
index 19cff9e..04c5367 100644
--- a/src/modules/audio_coding/codecs/iSAC/main/test/ReleaseTest-API/ReleaseTest-API.cc
+++ b/src/modules/audio_coding/codecs/iSAC/main/test/ReleaseTest-API/ReleaseTest-API.cc
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
  *
  *  Use of this source code is governed by a BSD-style license
  *  that can be found in the LICENSE file in the root of the source
@@ -692,15 +692,24 @@
                             exit(0);
                         }
                         auxUW8 = (WebRtc_UWord8)(((streamLenTransCoding & 0xFF00) >> 8) &  0x00FF);
-                        fwrite(&auxUW8, sizeof(WebRtc_UWord8),
-                            1, transcodingBitstream);
+                        if (fwrite(&auxUW8, sizeof(WebRtc_UWord8), 1,
+                                   transcodingBitstream) != 1) {
+                          return -1;
+                        }
 
                         auxUW8 = (WebRtc_UWord8)(streamLenTransCoding & 0x00FF);
-                        fwrite(&auxUW8, sizeof(WebRtc_UWord8),
-                            1, transcodingBitstream);
+                        if (fwrite(&auxUW8, sizeof(WebRtc_UWord8),
+                                   1, transcodingBitstream) != 1) {
+                          return -1;
+                        }
 
-                        fwrite((WebRtc_UWord8*)streamDataTransCoding, sizeof(WebRtc_UWord8),
-                            streamLenTransCoding, transcodingBitstream);
+                        if (fwrite((WebRtc_UWord8*)streamDataTransCoding,
+                                   sizeof(WebRtc_UWord8),
+                                   streamLenTransCoding,
+                                   transcodingBitstream) !=
+                            static_cast<size_t>(streamLenTransCoding)) {
+                          return -1;
+                        }
 
                         WebRtcIsac_ReadBwIndex((WebRtc_Word16*)streamDataTransCoding, &indexStream);
                         if(indexStream != bnIdxTC)
@@ -939,12 +948,18 @@
         /* Write decoded speech frame to file */
         if((declen > 0) && (numFileLoop == 0))
         {
-            fwrite(decoded, sizeof(WebRtc_Word16), declen, outp);
+          if (fwrite(decoded, sizeof(WebRtc_Word16), declen,
+                     outp) != static_cast<size_t>(declen)) {
+            return -1;
+          }
         }
 
         if((declenTC > 0) && (numFileLoop == 0))
         {
-            fwrite(decodedTC, sizeof(WebRtc_Word16), declen, transCodingFile);
+          if (fwrite(decodedTC, sizeof(WebRtc_Word16), declen,
+                     transCodingFile) != static_cast<size_t>(declen)) {
+            return -1;
+          }
         }
 
 
diff --git a/src/modules/audio_coding/codecs/iSAC/main/test/SwitchingSampRate/SwitchingSampRate.cc b/src/modules/audio_coding/codecs/iSAC/main/test/SwitchingSampRate/SwitchingSampRate.cc
index e0eed12..cccae28 100644
--- a/src/modules/audio_coding/codecs/iSAC/main/test/SwitchingSampRate/SwitchingSampRate.cc
+++ b/src/modules/audio_coding/codecs/iSAC/main/test/SwitchingSampRate/SwitchingSampRate.cc
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
  *
  *  Use of this source code is governed by a BSD-style license
  *  that can be found in the LICENSE file in the root of the source
@@ -392,13 +392,19 @@
         // Write the arrival time.
         if(senderIdx == 0)
         {
-          fwrite(&(packetData[senderIdx]->arrival_time), sizeof(unsigned int), 1,
-                 arrivalTimeFile1);
+          if (fwrite(&(packetData[senderIdx]->arrival_time),
+                     sizeof(unsigned int),
+                     1, arrivalTimeFile1) != 1) {
+            return -1;
+          }
         }
         else
         {
-          fwrite(&(packetData[senderIdx]->arrival_time), sizeof(unsigned int), 1,
-                 arrivalTimeFile2);
+          if (fwrite(&(packetData[senderIdx]->arrival_time),
+                     sizeof(unsigned int),
+                     1, arrivalTimeFile2) != 1) {
+            return -1;
+          }
         }
 
         // BWE
@@ -426,13 +432,19 @@
         {
           WebRtcSpl_UpsampleBy2(audioBuff60ms, lenDecodedAudio, resampledAudio60ms,
                                 resamplerState[receiverIdx]);
-          fwrite(resampledAudio60ms, sizeof(short), lenDecodedAudio << 1,
-                 outFile[receiverIdx]);
+          if (fwrite(resampledAudio60ms, sizeof(short), lenDecodedAudio << 1,
+                     outFile[receiverIdx]) !=
+              static_cast<size_t>(lenDecodedAudio << 1)) {
+            return -1;
+          }
         }
         else
         {
-          fwrite(audioBuff60ms, sizeof(short), lenDecodedAudio,
-                 outFile[receiverIdx]);
+          if (fwrite(audioBuff60ms, sizeof(short), lenDecodedAudio,
+                     outFile[receiverIdx]) !=
+              static_cast<size_t>(lenDecodedAudio)) {
+            return -1;
+          }
         }
         num10ms[senderIdx] = 0;
       }
diff --git a/src/modules/audio_coding/codecs/iSAC/main/test/simpleKenny.c b/src/modules/audio_coding/codecs/iSAC/main/test/simpleKenny.c
index d92ab89..be1588c 100644
--- a/src/modules/audio_coding/codecs/iSAC/main/test/simpleKenny.c
+++ b/src/modules/audio_coding/codecs/iSAC/main/test/simpleKenny.c
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
  *
  *  Use of this source code is governed by a BSD-style license
  *  that can be found in the LICENSE file in the root of the source
@@ -429,13 +429,20 @@
 
 		if(onlyEncode)
 		{
-			WebRtc_UWord8 auxUW8;
-			auxUW8 = (WebRtc_UWord8)(((stream_len & 0x7F00) >> 8) & 0xFF);
-			fwrite(&auxUW8, sizeof(WebRtc_UWord8), 1, outp);
+                  WebRtc_UWord8 auxUW8;
+                  auxUW8 = (WebRtc_UWord8)(((stream_len & 0x7F00) >> 8) & 0xFF);
+                  if (fwrite(&auxUW8, sizeof(WebRtc_UWord8), 1, outp) != 1) {
+                    return -1;
+                  }
 
-			auxUW8 = (WebRtc_UWord8)(stream_len & 0xFF);
-			fwrite(&auxUW8, sizeof(WebRtc_UWord8), 1, outp);
-			fwrite(payload, 1, stream_len, outp);
+                  auxUW8 = (WebRtc_UWord8)(stream_len & 0xFF);
+                  if (fwrite(&auxUW8, sizeof(WebRtc_UWord8), 1, outp) != 1) {
+                    return -1;
+                  }
+                  if (fwrite(payload, 1, stream_len,
+                             outp) != (size_t)stream_len) {
+                    return -1;
+                  }
 		}
 		else
 		{
@@ -462,7 +469,10 @@
 			}
 
 			// Write decoded speech frame to file
-			fwrite(decoded, sizeof(WebRtc_Word16), declen, outp);
+                        if (fwrite(decoded, sizeof(WebRtc_Word16),
+                                   declen, outp) != (size_t)declen) {
+                          return -1;
+                        }
 			cur_framesmpls = declen;
 		}
         // Update Statistics
diff --git a/src/modules/audio_coding/codecs/ilbc/test/iLBC_test.c b/src/modules/audio_coding/codecs/ilbc/test/iLBC_test.c
index d2c9ba5..19569ac 100644
--- a/src/modules/audio_coding/codecs/ilbc/test/iLBC_test.c
+++ b/src/modules/audio_coding/codecs/ilbc/test/iLBC_test.c
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
  *
  *  Use of this source code is governed by a BSD-style license
  *  that can be found in the LICENSE file in the root of the source
@@ -168,7 +168,11 @@
 
     /* write byte file */
 
-    fwrite(encoded_data, sizeof(WebRtc_Word16), ((len+1)/sizeof(WebRtc_Word16)), efileid);
+    if (fwrite(encoded_data, sizeof(WebRtc_Word16),
+               ((len+1)/sizeof(WebRtc_Word16)), efileid) !=
+        (size_t)(((len+1)/sizeof(WebRtc_Word16)))) {
+      return -1;
+    }
 
     /* get channel data if provided */
     if (argc==6) {
@@ -204,7 +208,10 @@
 
     /* write output file */
 
-    fwrite(decoded_data,sizeof(WebRtc_Word16),len,ofileid);
+    if (fwrite(decoded_data, sizeof(WebRtc_Word16), len,
+               ofileid) != (size_t)len) {
+      return -1;
+    }
   }
 
   /* close files */
diff --git a/src/modules/audio_coding/main/source/audio_coding_module_impl.cc b/src/modules/audio_coding/main/source/audio_coding_module_impl.cc
index 9171221..eeeecd8 100644
--- a/src/modules/audio_coding/main/source/audio_coding_module_impl.cc
+++ b/src/modules/audio_coding/main/source/audio_coding_module_impl.cc
@@ -431,9 +431,16 @@
     CriticalSectionScoped lock(*_callbackCritSect);
 #ifdef ACM_QA_TEST
     if(_outgoingPL != NULL) {
-      fwrite(&rtp_timestamp, sizeof(WebRtc_UWord32), 1, _outgoingPL);
-      fwrite(&current_payload_type, sizeof(WebRtc_UWord8), 1, _outgoingPL);
-      fwrite(&length_bytes, sizeof(WebRtc_Word16), 1, _outgoingPL);
+      if (fwrite(&rtp_timestamp, sizeof(WebRtc_UWord32), 1, _outgoingPL) != 1) {
+        return -1;
+      }
+      if (fwrite(&current_payload_type, sizeof(WebRtc_UWord8),
+                 1, _outgoingPL) != 1) {
+        return -1;
+      }
+      if (fwrite(&length_bytes, sizeof(WebRtc_Word16), 1, _outgoingPL) != 1) {
+        return -1;
+      }
     }
 #endif
 
@@ -1489,11 +1496,18 @@
     CriticalSectionScoped lock(*_acmCritSect);
 #ifdef ACM_QA_TEST
     if(_incomingPL != NULL) {
-      fwrite(&rtp_info.header.timestamp, sizeof(WebRtc_UWord32), 1,
-             _incomingPL);
-      fwrite(&rtp_info.header.payloadType, sizeof(WebRtc_UWord8), 1,
-             _incomingPL);
-      fwrite(&payload_length, sizeof(WebRtc_Word16), 1, _incomingPL);
+      if (fwrite(&rtp_info.header.timestamp, sizeof(WebRtc_UWord32),
+                 1, _incomingPL) != 1) {
+        return -1;
+      }
+      if (fwrite(&rtp_info.header.payloadType, sizeof(WebRtc_UWord8),
+                 1, _incomingPL) != 1) {
+        return -1;
+      }
+      if (fwrite(&payload_length, sizeof(WebRtc_Word16),
+                 1, _incomingPL) != 1) {
+        return -1;
+      }
     }
 #endif
 
diff --git a/src/modules/audio_coding/main/test/PCMFile.cc b/src/modules/audio_coding/main/test/PCMFile.cc
index bf231f0..40a3675 100644
--- a/src/modules/audio_coding/main/test/PCMFile.cc
+++ b/src/modules/audio_coding/main/test/PCMFile.cc
@@ -181,8 +181,11 @@
 void PCMFile::Write10MsData(AudioFrame& audio_frame) {
   if (audio_frame.num_channels_ == 1) {
     if (!save_stereo_) {
-      fwrite(audio_frame.data_, sizeof(WebRtc_UWord16),
-             audio_frame.samples_per_channel_, pcm_file_);
+      if (fwrite(audio_frame.data_, sizeof(WebRtc_UWord16),
+                 audio_frame.samples_per_channel_, pcm_file_) !=
+          static_cast<size_t>(audio_frame.samples_per_channel_)) {
+        return;
+      }
     } else {
       WebRtc_Word16* stereo_audio =
           new WebRtc_Word16[2 * audio_frame.samples_per_channel_];
@@ -191,20 +194,29 @@
         stereo_audio[k << 1] = audio_frame.data_[k];
         stereo_audio[(k << 1) + 1] = audio_frame.data_[k];
       }
-      fwrite(stereo_audio, sizeof(WebRtc_Word16),
-             2 * audio_frame.samples_per_channel_, pcm_file_);
+      if (fwrite(stereo_audio, sizeof(WebRtc_Word16),
+                 2 * audio_frame.samples_per_channel_, pcm_file_) !=
+          static_cast<size_t>(2 * audio_frame.samples_per_channel_)) {
+        return;
+      }
       delete[] stereo_audio;
     }
   } else {
-    fwrite(audio_frame.data_, sizeof(WebRtc_Word16),
-           audio_frame.num_channels_ * audio_frame.samples_per_channel_,
-           pcm_file_);
+    if (fwrite(audio_frame.data_, sizeof(WebRtc_Word16),
+               audio_frame.num_channels_ * audio_frame.samples_per_channel_,
+               pcm_file_) != static_cast<size_t>(
+            audio_frame.num_channels_ * audio_frame.samples_per_channel_)) {
+      return;
+    }
   }
 }
 
 void PCMFile::Write10MsData(WebRtc_Word16* playout_buffer,
                             WebRtc_UWord16 length_smpls) {
-  fwrite(playout_buffer, sizeof(WebRtc_UWord16), length_smpls, pcm_file_);
+  if (fwrite(playout_buffer, sizeof(WebRtc_UWord16),
+             length_smpls, pcm_file_) != length_smpls) {
+    return;
+  }
 }
 
 void PCMFile::Close() {
diff --git a/src/modules/audio_coding/main/test/RTPFile.cc b/src/modules/audio_coding/main/test/RTPFile.cc
index 91ba946..37f9d3c 100644
--- a/src/modules/audio_coding/main/test/RTPFile.cc
+++ b/src/modules/audio_coding/main/test/RTPFile.cc
@@ -165,12 +165,23 @@
 {
     // Write data in a format that NetEQ and RTP Play can parse
     fprintf(_rtpFile, "#!RTPencode%s\n", "1.0");
-    WebRtc_UWord32 dummy_variable = 0; // should be converted to network endian format, but does not matter when 0
-    fwrite(&dummy_variable, 4, 1, _rtpFile);
-    fwrite(&dummy_variable, 4, 1, _rtpFile);
-    fwrite(&dummy_variable, 4, 1, _rtpFile);
-    fwrite(&dummy_variable, 2, 1, _rtpFile);
-    fwrite(&dummy_variable, 2, 1, _rtpFile);
+    WebRtc_UWord32 dummy_variable = 0;
+    // should be converted to network endian format, but does not matter when 0
+    if (fwrite(&dummy_variable, 4, 1, _rtpFile) != 1) {
+      return;
+    }
+    if (fwrite(&dummy_variable, 4, 1, _rtpFile) != 1) {
+      return;
+    }
+    if (fwrite(&dummy_variable, 4, 1, _rtpFile) != 1) {
+      return;
+    }
+    if (fwrite(&dummy_variable, 2, 1, _rtpFile) != 1) {
+      return;
+    }
+    if (fwrite(&dummy_variable, 2, 1, _rtpFile) != 1) {
+      return;
+    }
     fflush(_rtpFile);
 }
 
@@ -205,11 +216,21 @@
 
     offsetMs = (timeStamp/(frequency/1000));
     offsetMs = htonl(offsetMs);
-    fwrite(&lengthBytes, 2, 1, _rtpFile);
-    fwrite(&plen, 2, 1, _rtpFile);
-    fwrite(&offsetMs, 4, 1, _rtpFile);
-    fwrite(rtpHeader, 12, 1, _rtpFile);
-    fwrite(payloadData, 1, payloadSize, _rtpFile);
+    if (fwrite(&lengthBytes, 2, 1, _rtpFile) != 1) {
+      return;
+    }
+    if (fwrite(&plen, 2, 1, _rtpFile) != 1) {
+      return;
+    }
+    if (fwrite(&offsetMs, 4, 1, _rtpFile) != 1) {
+      return;
+    }
+    if (fwrite(rtpHeader, 12, 1, _rtpFile) != 1) {
+      return;
+    }
+    if (fwrite(payloadData, 1, payloadSize, _rtpFile) != payloadSize) {
+      return;
+    }
 }
 
 WebRtc_UWord16 RTPFile::Read(WebRtcRTPHeader* rtpInfo,
diff --git a/src/modules/audio_coding/neteq/automode.c b/src/modules/audio_coding/neteq/automode.c
index 815739e..d8d56c6 100644
--- a/src/modules/audio_coding/neteq/automode.c
+++ b/src/modules/audio_coding/neteq/automode.c
@@ -378,7 +378,9 @@
 #ifdef NETEQ_DELAY_LOGGING
     /* special code for offline delay logging */
     temp_var = NETEQ_DELAY_LOGGING_SIGNAL_OPTBUF;
-    fwrite( &temp_var, sizeof(int), 1, delay_fid2 );
+    if (fwrite( &temp_var, sizeof(int), 1, delay_fid2 ) != 1) {
+      return -1;
+    }
     temp_var = (int) (Bopt * inst->packetSpeechLenSamp);
 #endif
 
@@ -518,7 +520,9 @@
 
 #ifdef NETEQ_DELAY_LOGGING
     /* special code for offline delay logging */
-    fwrite( &temp_var, sizeof(int), 1, delay_fid2 );
+    if (fwrite( &temp_var, sizeof(int), 1, delay_fid2 ) != 1) {
+      return -1;
+    }
 #endif
 
     /* Sanity check: Bopt must be strictly positive */
diff --git a/src/modules/audio_coding/neteq/packet_buffer.c b/src/modules/audio_coding/neteq/packet_buffer.c
index 2a94c8a..8f09b07 100644
--- a/src/modules/audio_coding/neteq/packet_buffer.c
+++ b/src/modules/audio_coding/neteq/packet_buffer.c
@@ -317,14 +317,23 @@
     if (*flushed)
     {
         temp_var = NETEQ_DELAY_LOGGING_SIGNAL_FLUSH;
-        fwrite( &temp_var, sizeof(int), 1, delay_fid2 );
+        if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+          return -1;
+        }
     }
     temp_var = NETEQ_DELAY_LOGGING_SIGNAL_RECIN;
-    fwrite( &temp_var, sizeof(int), 1, delay_fid2 );
-    fwrite( &RTPpacket->timeStamp, sizeof(WebRtc_UWord32), 1, delay_fid2 );
-    fwrite( &RTPpacket->seqNumber, sizeof(WebRtc_UWord16), 1, delay_fid2 );
-    fwrite( &RTPpacket->payloadType, sizeof(int), 1, delay_fid2 );
-    fwrite( &RTPpacket->payloadLen, sizeof(WebRtc_Word16), 1, delay_fid2 );
+    if ((fwrite(&temp_var, sizeof(int),
+                1, delay_fid2) != 1) ||
+        (fwrite(&RTPpacket->timeStamp, sizeof(WebRtc_UWord32),
+                1, delay_fid2) != 1) ||
+        (fwrite(&RTPpacket->seqNumber, sizeof(WebRtc_UWord16),
+                1, delay_fid2) != 1) ||
+        (fwrite(&RTPpacket->payloadType, sizeof(int),
+                1, delay_fid2) != 1) ||
+        (fwrite(&RTPpacket->payloadLen, sizeof(WebRtc_Word16),
+                1, delay_fid2) != 1)) {
+      return -1;
+    }
     tot_received_packets++;
 #endif /* NETEQ_DELAY_LOGGING */
 
diff --git a/src/modules/audio_coding/neteq/recout.c b/src/modules/audio_coding/neteq/recout.c
index f021f45..896a4b8 100644
--- a/src/modules/audio_coding/neteq/recout.c
+++ b/src/modules/audio_coding/neteq/recout.c
@@ -318,8 +318,12 @@
             }
 #ifdef NETEQ_DELAY_LOGGING
             temp_var = NETEQ_DELAY_LOGGING_SIGNAL_CHANGE_FS;
-            fwrite(&temp_var, sizeof(int), 1, delay_fid2);
-            fwrite(&inst->fs, sizeof(WebRtc_UWord16), 1, delay_fid2);
+            if ((fwrite(&temp_var, sizeof(int),
+                        1, delay_fid2) != 1) ||
+                (fwrite(&inst->fs, sizeof(WebRtc_UWord16),
+                        1, delay_fid2) != 1)) {
+              return -1;
+            }
 #endif
         }
 
@@ -508,9 +512,17 @@
                 pw16_decoded_buffer, &speechType);
 #ifdef NETEQ_DELAY_LOGGING
             temp_var = NETEQ_DELAY_LOGGING_SIGNAL_DECODE_ONE_DESC;
-            fwrite(&temp_var, sizeof(int), 1, delay_fid2);
-            fwrite(&inst->endTimestamp, sizeof(WebRtc_UWord32), 1, delay_fid2);
-            fwrite(&dspInfo->samplesLeft, sizeof(WebRtc_UWord16), 1, delay_fid2);
+            if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+              return -1;
+            }
+            if (fwrite(&inst->endTimestamp, sizeof(WebRtc_UWord32),
+                       1, delay_fid2) != 1) {
+              return -1;
+            }
+            if (fwrite(&dspInfo->samplesLeft, sizeof(WebRtc_UWord16),
+                       1, delay_fid2) != 1) {
+              return -1;
+            }
             tot_received_packets++;
 #endif
         }
@@ -692,7 +704,9 @@
         case DSP_INSTR_MERGE:
 #ifdef NETEQ_DELAY_LOGGING
             temp_var = NETEQ_DELAY_LOGGING_SIGNAL_MERGE_INFO;
-            fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+            if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+              return -1;
+            }
             temp_var = -len;
 #endif
             /* Call Merge with history*/
@@ -710,7 +724,9 @@
 
 #ifdef NETEQ_DELAY_LOGGING
             temp_var += len;
-            fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+            if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+              return -1;
+            }
 #endif
             /* If last packet was decoded as a inband CNG set mode to CNG instead */
             if (speechType == TYPE_CNG) inst->w16_mode = MODE_CODEC_INTERNAL_CNG;
@@ -756,9 +772,13 @@
                 inst->w16_concealedTS += len;
 #ifdef NETEQ_DELAY_LOGGING
                 temp_var = NETEQ_DELAY_LOGGING_SIGNAL_EXPAND_INFO;
-                fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+                if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+                  return -1;
+                }
                 temp_var = len;
-                fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+                if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+                  return -1;
+                }
 #endif
                 len = 0; /* already written the data, so do not write it again further down. */
             }
@@ -812,9 +832,13 @@
                     inst->curPosition += (borrowedSamples - len);
 #ifdef NETEQ_DELAY_LOGGING
                     temp_var = NETEQ_DELAY_LOGGING_SIGNAL_ACCELERATE_INFO;
-                    fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+                    if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+                      return -1;
+                    }
                     temp_var = 3 * inst->timestampsPerCall - len;
-                    fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+                    if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+                      return -1;
+                    }
 #endif
                     len = 0;
                 }
@@ -827,9 +851,13 @@
                                            (len-borrowedSamples));
 #ifdef NETEQ_DELAY_LOGGING
                     temp_var = NETEQ_DELAY_LOGGING_SIGNAL_ACCELERATE_INFO;
-                    fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+                    if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+                      return -1;
+                    }
                     temp_var = 3 * inst->timestampsPerCall - len;
-                    fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+                    if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+                      return -1;
+                    }
 #endif
                     len = len - borrowedSamples;
                 }
@@ -839,7 +867,9 @@
             {
 #ifdef NETEQ_DELAY_LOGGING
                 temp_var = NETEQ_DELAY_LOGGING_SIGNAL_ACCELERATE_INFO;
-                fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+                if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+                  return -1;
+                }
                 temp_var = len;
 #endif
                 return_value = WebRtcNetEQ_Accelerate(inst,
@@ -856,7 +886,9 @@
 
 #ifdef NETEQ_DELAY_LOGGING
                 temp_var -= len;
-                fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+                if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+                  return -1;
+                }
 #endif
             }
             /* If last packet was decoded as a inband CNG set mode to CNG instead */
@@ -1147,9 +1179,13 @@
 
 #ifdef NETEQ_DELAY_LOGGING
             temp_var = NETEQ_DELAY_LOGGING_SIGNAL_PREEMPTIVE_INFO;
-            fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+            if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+              return -1;
+            }
             temp_var = len - w16_tmp1; /* number of samples added */
-            fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+            if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+              return -1;
+            }
 #endif
             /* If last packet was decoded as inband CNG, set mode to CNG instead */
             if (speechType == TYPE_CNG) inst->w16_mode = MODE_CODEC_INTERNAL_CNG;
@@ -1256,9 +1292,13 @@
             inst->w16_mode = MODE_FADE_TO_BGN;
 #ifdef NETEQ_DELAY_LOGGING
             temp_var = NETEQ_DELAY_LOGGING_SIGNAL_EXPAND_INFO;
-            fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+            if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+              return -1;
+            }
             temp_var = len;
-            fwrite(&temp_var, sizeof(int), 1, delay_fid2);
+            if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+              return -1;
+            }
 #endif
 
             break;
diff --git a/src/modules/audio_coding/neteq/signal_mcu.c b/src/modules/audio_coding/neteq/signal_mcu.c
index 28dcf00..b28f39c 100644
--- a/src/modules/audio_coding/neteq/signal_mcu.c
+++ b/src/modules/audio_coding/neteq/signal_mcu.c
@@ -646,9 +646,14 @@
 
 #ifdef NETEQ_DELAY_LOGGING
             temp_var = NETEQ_DELAY_LOGGING_SIGNAL_DECODE;
-            fwrite(&temp_var,sizeof(int),1,delay_fid2);
-            fwrite(&temp_pkt.timeStamp,sizeof(WebRtc_UWord32),1,delay_fid2);
-            fwrite(&dspInfo.samplesLeft, sizeof(WebRtc_UWord16), 1, delay_fid2);
+            if ((fwrite(&temp_var, sizeof(int),
+                        1, delay_fid2) != 1) ||
+                (fwrite(&temp_pkt.timeStamp, sizeof(WebRtc_UWord32),
+                        1, delay_fid2) != 1) ||
+                (fwrite(&dspInfo.samplesLeft, sizeof(WebRtc_UWord16),
+                        1, delay_fid2) != 1)) {
+              return -1;
+            }
 #endif
 
             *blockPtr = temp_pkt.payloadLen;
@@ -762,4 +767,3 @@
     return 0;
 
 }
-
diff --git a/src/modules/audio_coding/neteq/test/NetEqRTPplay.cc b/src/modules/audio_coding/neteq/test/NetEqRTPplay.cc
index 7525a40..1d6d80d 100644
--- a/src/modules/audio_coding/neteq/test/NetEqRTPplay.cc
+++ b/src/modules/audio_coding/neteq/test/NetEqRTPplay.cc
@@ -561,8 +561,12 @@
 #ifdef NETEQ_DELAY_LOGGING
         temp_var = NETEQ_DELAY_LOGGING_SIGNAL_CLOCK;
         clock_float = (float) simClock;
-        fwrite(&temp_var,sizeof(int),1,delay_fid2);
-        fwrite(&clock_float, sizeof(float),1,delay_fid2);
+        if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+          return -1;
+        }
+        if (fwrite(&clock_float, sizeof(float), 1, delay_fid2) != 1) {
+          return -1;
+        }
 #endif
         /* time to set extra delay */
         if (extraDelay > -1 && simClock >= nextExtraDelayTime) {
@@ -657,7 +661,9 @@
             }
 
             // write to file
-            fwrite(out_data,writeLen,2,out_file);
+            if (fwrite(out_data, writeLen, 2, out_file) != 2) {
+              return -1;
+            }
             writtenSamples += writeLen;
 
 
@@ -678,8 +684,13 @@
 
 #ifdef NETEQ_DELAY_LOGGING
     temp_var = NETEQ_DELAY_LOGGING_SIGNAL_EOF;
-    fwrite(&temp_var,sizeof(int),1,delay_fid2);
-    fwrite(&tot_received_packets,sizeof(WebRtc_UWord32),1,delay_fid2);
+    if (fwrite(&temp_var, sizeof(int), 1, delay_fid2) != 1) {
+      return -1;
+    }
+    if (fwrite(&tot_received_packets, sizeof(WebRtc_UWord32),
+               1, delay_fid2) != 1) {
+      return -1;
+    }
     fprintf(delay_fid2,"End of file\n");
     fclose(delay_fid2);
 #endif
diff --git a/src/modules/audio_coding/neteq/test/RTPencode.cc b/src/modules/audio_coding/neteq/test/RTPencode.cc
index f328794..3aaaf6c 100644
--- a/src/modules/audio_coding/neteq/test/RTPencode.cc
+++ b/src/modules/audio_coding/neteq/test/RTPencode.cc
@@ -252,7 +252,7 @@
 	WebRtc_Word16 seqNo=0xFFF;
 	WebRtc_UWord32 ssrc=1235412312;
 	WebRtc_UWord32 timestamp=0xAC1245;
-	WebRtc_UWord16 length, plen;
+        WebRtc_UWord16 length, plen;
 	WebRtc_UWord32 offset;
 	double sendtime = 0;
     int red_PT[2] = {0};
@@ -547,11 +547,21 @@
 	//fprintf(out_file, "#!RTPencode%s\n", "1.0");
 	fprintf(out_file, "#!rtpplay%s \n", "1.0"); // this is the string that rtpplay needs
 	WebRtc_UWord32 dummy_variable = 0; // should be converted to network endian format, but does not matter when 0
-	fwrite(&dummy_variable, 4, 1, out_file);
-	fwrite(&dummy_variable, 4, 1, out_file);
-	fwrite(&dummy_variable, 4, 1, out_file);
-	fwrite(&dummy_variable, 2, 1, out_file);
-	fwrite(&dummy_variable, 2, 1, out_file);
+        if (fwrite(&dummy_variable, 4, 1, out_file) != 1) {
+          return -1;
+        }
+        if (fwrite(&dummy_variable, 4, 1, out_file) != 1) {
+          return -1;
+        }
+        if (fwrite(&dummy_variable, 4, 1, out_file) != 1) {
+          return -1;
+        }
+        if (fwrite(&dummy_variable, 2, 1, out_file) != 1) {
+          return -1;
+        }
+        if (fwrite(&dummy_variable, 2, 1, out_file) != 1) {
+          return -1;
+        }
 
 #ifdef TIMESTAMP_WRAPAROUND
 	timestamp = 0xFFFFFFFF - fs*10; /* should give wrap-around in 10 seconds */
@@ -600,10 +610,18 @@
             plen = htons(12 + enc_len);
             offset = (WebRtc_UWord32) sendtime; //(timestamp/(fs/1000));
             offset = htonl(offset);
-            fwrite(&length, 2, 1, out_file);
-            fwrite(&plen, 2, 1, out_file);
-            fwrite(&offset, 4, 1, out_file);
-            fwrite(rtp_data, 12 + enc_len, 1, out_file);
+            if (fwrite(&length, 2, 1, out_file) != 1) {
+              return -1;
+            }
+            if (fwrite(&plen, 2, 1, out_file) != 1) {
+              return -1;
+            }
+            if (fwrite(&offset, 4, 1, out_file) != 1) {
+              return -1;
+            }
+            if (fwrite(rtp_data, 12 + enc_len, 1, out_file) != 1) {
+              return -1;
+            }
 
             dtmfSent = true;
         }
@@ -683,13 +701,20 @@
 			do {
 #endif //MULTIPLE_SAME_TIMESTAMP
 			/* write RTP packet to file */
-			length = htons(12 + enc_len + 8);
-			plen = htons(12 + enc_len);
-			offset = (WebRtc_UWord32) sendtime; //(timestamp/(fs/1000));
-			offset = htonl(offset);
-			fwrite(&length, 2, 1, out_file);
-			fwrite(&plen, 2, 1, out_file);
-			fwrite(&offset, 4, 1, out_file);
+                          length = htons(12 + enc_len + 8);
+                          plen = htons(12 + enc_len);
+                          offset = (WebRtc_UWord32) sendtime;
+                          //(timestamp/(fs/1000));
+                          offset = htonl(offset);
+                          if (fwrite(&length, 2, 1, out_file) != 1) {
+                            return -1;
+                          }
+                          if (fwrite(&plen, 2, 1, out_file) != 1) {
+                            return -1;
+                          }
+                          if (fwrite(&offset, 4, 1, out_file) != 1) {
+                            return -1;
+                          }
 #ifdef RANDOM_DATA
 			for (int k=0; k<12+enc_len; k++) {
 				rtp_data[k] = rand() + rand();
@@ -700,7 +725,9 @@
 				rtp_data[k] = rand() + rand();
 			}
 #endif
-			fwrite(rtp_data, 12 + enc_len, 1, out_file);
+                        if (fwrite(rtp_data, 12 + enc_len, 1, out_file) != 1) {
+                          return -1;
+                        }
 #ifdef MULTIPLE_SAME_TIMESTAMP
 			} while ( (seqNo%REPEAT_PACKET_DISTANCE == 0) && (mult_pack++ < REPEAT_PACKET_COUNT) );
 #endif //MULTIPLE_SAME_TIMESTAMP
@@ -708,11 +735,23 @@
 #ifdef INSERT_OLD_PACKETS
 			if (packet_age >= OLD_PACKET*fs) {
 				if (!first_old_packet) {
-					// send the old packet
-					fwrite(&old_length, 2, 1, out_file);
-					fwrite(&old_plen, 2, 1, out_file);
-					fwrite(&offset, 4, 1, out_file);
-					fwrite(old_rtp_data, 12 + old_enc_len, 1, out_file);
+                                  // send the old packet
+                                  if (fwrite(&old_length, 2, 1,
+                                             out_file) != 1) {
+                                    return -1;
+                                  }
+                                  if (fwrite(&old_plen, 2, 1,
+                                             out_file) != 1) {
+                                    return -1;
+                                  }
+                                  if (fwrite(&offset, 4, 1,
+                                             out_file) != 1) {
+                                    return -1;
+                                  }
+                                  if (fwrite(old_rtp_data, 12 + old_enc_len,
+                                             1, out_file) != 1) {
+                                    return -1;
+                                  }
 				}
 				// store current packet as old
 				old_length=length;
diff --git a/src/modules/audio_coding/neteq/test/RTPjitter.cc b/src/modules/audio_coding/neteq/test/RTPjitter.cc
index ef39091..e3270be 100644
--- a/src/modules/audio_coding/neteq/test/RTPjitter.cc
+++ b/src/modules/audio_coding/neteq/test/RTPjitter.cc
@@ -167,7 +167,12 @@
 			}
 
 			// write packet to file
-			fwrite(temp_packet, sizeof(unsigned char), ntohs(*((WebRtc_UWord16*) temp_packet)), out_file);
+                        if (fwrite(temp_packet, sizeof(unsigned char),
+                                   ntohs(*((WebRtc_UWord16*) temp_packet)),
+                                   out_file) !=
+                            ntohs(*((WebRtc_UWord16*) temp_packet))) {
+                          return -1;
+                        }
 		}
 	}