| | |
| | private function getTotalObjects( $fileHandle ): int { |
| | - fseek( $fileHandle, 1032 ); |
| | + fseek( $fileHandle, 1028 ); |
| | + $data = fread( $fileHandle, 4 ); |
| | |
| | - return unpack( 'N', fread( $fileHandle, 4 ) )[1]; |
| | + return $data ? unpack( 'N', $data )[1] : 0; |
| | } |
| | |
 |
| | $pos = 1032 + ($total * 20) + ($total * 4) + ($idx * 4); |
| | fseek( $fileHandle, $pos ); |
| | - $offset = unpack( 'N', fread( $fileHandle, 4 ) )[1]; |
| | + $data = fread( $fileHandle, 4 ); |
| | + $offset = $data ? unpack( 'N', $data )[1] : 0; |
| | |
| | if( $offset & 0x80000000 ) { |
| | $base = 1032 + ($total * 24) + ($total * 4); |
| | fseek( $fileHandle, $base + (($offset & 0x7FFFFFFF) * 8) ); |
| | - $offset = unpack( 'J', fread( $fileHandle, 8 ) )[1]; |
| | + $data64 = fread( $fileHandle, 8 ); |
| | + $offset = $data64 ? unpack( 'J', $data64 )[1] : 0; |
| | } |
| | |
| | - return $offset; |
| | + return (int)$offset; |
| | } |
| | |