Commit 9c09c64f authored by vaclav's avatar vaclav
Browse files

additional sanity check within FIX_ISM_METADAT_READER

parent c70ace95
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -78,3 +78,27 @@ bool is_digits_only( char *str )

    return true;
}


/*---------------------------------------------------------------------*
 * is_number()
 *
 * Check if a string is a number.
 *---------------------------------------------------------------------*/

bool is_number( char *str )
{
    int16_t i;

    i = 0;
    while ( str[i] != 0 )
    {
        if ( ( str[i] < '0' || str[i] > '9' ) && str[i] != '.' && str[i] != '-' && str[i] != '\n' )
        {
            return false;
        }
        i++;
    }

    return true;
}
+2 −0
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@

bool is_digits_only( char *str );

bool is_number( char *str );

char *to_upper( char *str );


+16 −0
Original line number Diff line number Diff line
@@ -31,6 +31,9 @@
*******************************************************************************************************/

#include "ism_file_reader.h"
#ifdef FIX_ISM_METADAT_READER
#include "cmdl_tools.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -114,8 +117,21 @@ ivas_error IsmFileReader_readNextFrame(
    char_ptr = strtok( char_buff, "," );
    i = 0;
    meta_prm[i++] = (float) atof( char_ptr );
#ifdef FIX_ISM_METADAT_READER
    if ( is_number( char_ptr ) == false )
    {
        return IVAS_ERR_ISM_INVALID_METADATA_VALUE;
    }
#endif
    while ( ( char_ptr = strtok( NULL, "," ) ) != NULL && i < NUM_ISM_METADATA_PER_LINE )
    {
#ifdef FIX_ISM_METADAT_READER
        if ( is_number( char_ptr ) == false )
        {
            return IVAS_ERR_ISM_INVALID_METADATA_VALUE;
        }
#endif

        meta_prm[i++] = (float) atof( char_ptr );
    }