Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ #define FIX_879_USAN_ERROR_IN_MASA_DECODING /* FhG: Issue 879 : avoid arithmetic with NULL pointer in the DirAC decoder to fix USAN error */ #define FIX_740_MASA_PREREND_VALIDITY_CHECK /* Nokia: issue 740: fix incorrect validity check in lib_rend to allow use of MASA prerenderer */ #define FIX_889_MASA_FILE_WRITER_OPEN /* Nokia: issue #889: mismatch in function definition and use */ /* #################### End BE switches ################################## */ Loading lib_util/masa_file_writer.c +20 −1 Original line number Diff line number Diff line Loading @@ -67,12 +67,26 @@ struct MasaFileWriter static void getExtMasaMetadataFileName( const char *outputWavFilename, /* i : name of the output audio file */ #ifdef FIX_889_MASA_FILE_WRITER_OPEN char *metadata_filename, /* o : name of the output MASA metadata file */ int32_t max_name_len /* i : size of metadata_filename in chars */ #else char metadata_filename[IVAS_MAX_NUM_OBJECTS][FILENAME_MAX - 12] /* o : name of the output masa metadata file */ #endif ) { char ext_meta[5]; /* sizeof( ext_meta ) accounts for terminating NULL, don't subtract extra 1 */ #ifdef FIX_889_MASA_FILE_WRITER_OPEN const int32_t maxNameLenWithoutExt = max_name_len - (int32_t) sizeof( ext_meta ); strncpy( metadata_filename, outputWavFilename, maxNameLenWithoutExt ); snprintf( ext_meta, sizeof( ext_meta ), ".met" ); /* strlen( metadata_filename[0] ) doesn't account for terminating NULL, subtract extra 1 */ const int32_t maxNumCharactersToAppend = max_name_len - (int32_t) strlen( metadata_filename ) - 1; strncat( metadata_filename, ext_meta, maxNumCharactersToAppend ); #else const int32_t maxNameLenWithoutExt = sizeof( metadata_filename[0] ) - sizeof( ext_meta ); strncpy( metadata_filename[0], outputWavFilename, maxNameLenWithoutExt ); snprintf( ext_meta, sizeof( ext_meta ), ".met" ); Loading @@ -80,6 +94,7 @@ static void getExtMasaMetadataFileName( /* strlen( metadata_filename[0] ) doesn't account for terminating NULL, subtract extra 1 */ const int32_t maxNumCharactersToAppend = (int32_t) ( sizeof( metadata_filename[0] ) - strlen( metadata_filename[0] ) - 1 ); strncat( metadata_filename[0], ext_meta, maxNumCharactersToAppend ); #endif return; } Loading Loading @@ -164,7 +179,11 @@ ivas_error MasaFileWriter_open( return IVAS_ERR_FAILED_FILE_OPEN; } #ifdef FIX_889_MASA_FILE_WRITER_OPEN getExtMasaMetadataFileName( outputWavFilename, filePath, FILENAME_MAX - 12 ); #else getExtMasaMetadataFileName( outputWavFilename, &filePath ); #endif file = fopen( filePath, "wb" ); Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ #define FIX_879_USAN_ERROR_IN_MASA_DECODING /* FhG: Issue 879 : avoid arithmetic with NULL pointer in the DirAC decoder to fix USAN error */ #define FIX_740_MASA_PREREND_VALIDITY_CHECK /* Nokia: issue 740: fix incorrect validity check in lib_rend to allow use of MASA prerenderer */ #define FIX_889_MASA_FILE_WRITER_OPEN /* Nokia: issue #889: mismatch in function definition and use */ /* #################### End BE switches ################################## */ Loading
lib_util/masa_file_writer.c +20 −1 Original line number Diff line number Diff line Loading @@ -67,12 +67,26 @@ struct MasaFileWriter static void getExtMasaMetadataFileName( const char *outputWavFilename, /* i : name of the output audio file */ #ifdef FIX_889_MASA_FILE_WRITER_OPEN char *metadata_filename, /* o : name of the output MASA metadata file */ int32_t max_name_len /* i : size of metadata_filename in chars */ #else char metadata_filename[IVAS_MAX_NUM_OBJECTS][FILENAME_MAX - 12] /* o : name of the output masa metadata file */ #endif ) { char ext_meta[5]; /* sizeof( ext_meta ) accounts for terminating NULL, don't subtract extra 1 */ #ifdef FIX_889_MASA_FILE_WRITER_OPEN const int32_t maxNameLenWithoutExt = max_name_len - (int32_t) sizeof( ext_meta ); strncpy( metadata_filename, outputWavFilename, maxNameLenWithoutExt ); snprintf( ext_meta, sizeof( ext_meta ), ".met" ); /* strlen( metadata_filename[0] ) doesn't account for terminating NULL, subtract extra 1 */ const int32_t maxNumCharactersToAppend = max_name_len - (int32_t) strlen( metadata_filename ) - 1; strncat( metadata_filename, ext_meta, maxNumCharactersToAppend ); #else const int32_t maxNameLenWithoutExt = sizeof( metadata_filename[0] ) - sizeof( ext_meta ); strncpy( metadata_filename[0], outputWavFilename, maxNameLenWithoutExt ); snprintf( ext_meta, sizeof( ext_meta ), ".met" ); Loading @@ -80,6 +94,7 @@ static void getExtMasaMetadataFileName( /* strlen( metadata_filename[0] ) doesn't account for terminating NULL, subtract extra 1 */ const int32_t maxNumCharactersToAppend = (int32_t) ( sizeof( metadata_filename[0] ) - strlen( metadata_filename[0] ) - 1 ); strncat( metadata_filename[0], ext_meta, maxNumCharactersToAppend ); #endif return; } Loading Loading @@ -164,7 +179,11 @@ ivas_error MasaFileWriter_open( return IVAS_ERR_FAILED_FILE_OPEN; } #ifdef FIX_889_MASA_FILE_WRITER_OPEN getExtMasaMetadataFileName( outputWavFilename, filePath, FILENAME_MAX - 12 ); #else getExtMasaMetadataFileName( outputWavFilename, &filePath ); #endif file = fopen( filePath, "wb" ); Loading