Skip to content
This repository was archived by the owner on May 8, 2025. It is now read-only.

Commit f3379fc

Browse files
committed
check all messages for invalid values
1 parent ad3319c commit f3379fc

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/phpFITFileAnalysis.php

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -981,16 +981,18 @@ private function readDataRecords()
981981
$tmp_value = null; // Placeholder for value for checking before inserting into the tmp_record_array
982982

983983
foreach ($this->defn_mesgs[$local_mesg_type]['field_defns'] as $field_defn) {
984-
// Check that we have information on the Field Definition and a valud base type exists.
984+
// Check that we have information on the Field Definition and a valid base type exists.
985985
if (isset($this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]) && isset($this->types[$field_defn['base_type']])) {
986-
// If it's a Record data message, store all the pieces in the temporary array as the timestamp may not be first...
987-
if ($this->defn_mesgs[$local_mesg_type]['global_mesg_num'] === 20) {
988-
$tmp_value = unpack($this->types[$field_defn['base_type']], substr($this->file_contents, $this->file_pointer, $field_defn['size']))['tmp'];
989-
990-
// Check if it's an invalid value for the type
991-
$tmp_record_array[$this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['field_name']] = ($tmp_value !== $this->invalid_values[$field_defn['base_type']]) ? $tmp_value / $this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['scale'] - $this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['offset'] : null;
992-
} else {
993-
$this->data_mesgs[$this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['mesg_name']][$this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['field_name']][] = (unpack($this->types[$field_defn['base_type']], substr($this->file_contents, $this->file_pointer, $field_defn['size']))['tmp'] / $this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['scale']) - $this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['offset'];
986+
// Check if it's an invalid value for the type
987+
$tmp_value = unpack($this->types[$field_defn['base_type']], substr($this->file_contents, $this->file_pointer, $field_defn['size']))['tmp'];
988+
if ($tmp_value !== $this->invalid_values[$field_defn['base_type']]) {
989+
990+
// If it's a Record data message, store all the pieces in the temporary array as the timestamp may not be first...
991+
if ($this->defn_mesgs[$local_mesg_type]['global_mesg_num'] === 20) {
992+
$tmp_record_array[$this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['field_name']] = $tmp_value / $this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['scale'] - $this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['offset'];
993+
} else {
994+
$this->data_mesgs[$this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['mesg_name']][$this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['field_name']][] = $tmp_value / $this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['scale'] - $this->data_mesg_info[$this->defn_mesgs[$local_mesg_type]['global_mesg_num']]['field_defns'][$field_defn['field_definition_number']]['offset'];
995+
}
994996
}
995997
}
996998
$this->file_pointer += $field_defn['size'];

0 commit comments

Comments
 (0)