@@ -915,8 +915,15 @@ static UBool compareBinaryFiles(const char* defaultTZFileName, const char* TZFil
915915 fseek (tzInfo->defaultTZFilePtr , 0 , SEEK_END);
916916 tzInfo->defaultTZFileSize = ftell (tzInfo->defaultTZFilePtr );
917917 }
918- fseek (file, 0 , SEEK_END);
918+ if (fseek (file, 0 , SEEK_END) != 0 ) {
919+ fclose (file);
920+ return false ;
921+ }
919922 sizeFile = ftell (file);
923+ if (ferror (file) != 0 ) {
924+ fclose (file);
925+ return false ;
926+ }
920927 sizeFileLeft = sizeFile;
921928
922929 if (sizeFile != tzInfo->defaultTZFileSize ) {
@@ -927,15 +934,27 @@ static UBool compareBinaryFiles(const char* defaultTZFileName, const char* TZFil
927934 */
928935 if (tzInfo->defaultTZBuffer == nullptr ) {
929936 rewind (tzInfo->defaultTZFilePtr );
937+ if (ferror (tzInfo->defaultTZFilePtr ) != 0 ) {
938+ fclose (file);
939+ return false ;
940+ }
930941 tzInfo->defaultTZBuffer = static_cast <char *>(uprv_malloc (sizeof (char ) * tzInfo->defaultTZFileSize ));
931942 sizeFileRead = fread (tzInfo->defaultTZBuffer , 1 , tzInfo->defaultTZFileSize , tzInfo->defaultTZFilePtr );
932943 }
933944 rewind (file);
945+ if (ferror (file) != 0 ) {
946+ fclose (file);
947+ return false ;
948+ }
934949 while (sizeFileLeft > 0 ) {
935950 uprv_memset (bufferFile, 0 , MAX_READ_SIZE);
936951 sizeFileToRead = sizeFileLeft < MAX_READ_SIZE ? sizeFileLeft : MAX_READ_SIZE;
937952
938953 sizeFileRead = fread (bufferFile, 1 , sizeFileToRead, file);
954+ if (ferror (file) != 0 ) {
955+ fclose (file);
956+ return false ;
957+ }
939958 if (memcmp (tzInfo->defaultTZBuffer + tzInfo->defaultTZPosition , bufferFile, sizeFileRead) != 0 ) {
940959 result = false ;
941960 break ;
0 commit comments