Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler. Number of rules (primarily dangerous function names) in C/C++ ruleset: 223 Examining data/mriconvert-2.1.0/AchievaDtiHandler.cpp Examining data/mriconvert-2.1.0/AnalyzeOptionsDlg.cpp Examining data/mriconvert-2.1.0/AnalyzeOutputter.cpp Examining data/mriconvert-2.1.0/AnalyzeVolume.cpp Examining data/mriconvert-2.1.0/Basic3DOutputter.cpp Examining data/mriconvert-2.1.0/BasicOptionsDlg.cpp Examining data/mriconvert-2.1.0/BasicVolumeFormat.cpp Examining data/mriconvert-2.1.0/BvFiles.cpp Examining data/mriconvert-2.1.0/BvOptionsDlg.cpp Examining data/mriconvert-2.1.0/Converter.cpp Examining data/mriconvert-2.1.0/DicomElement.cpp Examining data/mriconvert-2.1.0/DicomElementInstance.cpp Examining data/mriconvert-2.1.0/DicomFile.cpp Examining data/mriconvert-2.1.0/DicomTag.cpp Examining data/mriconvert-2.1.0/DicomTree.cpp Examining data/mriconvert-2.1.0/DicomViewer.cpp Examining data/mriconvert-2.1.0/Dictionary.cpp Examining data/mriconvert-2.1.0/EnhancedMrHandler.cpp Examining data/mriconvert-2.1.0/FslNiftiOutputter.cpp Examining data/mriconvert-2.1.0/GeDti2Handler.cpp Examining data/mriconvert-2.1.0/GeDtiRbHandler.cpp Examining data/mriconvert-2.1.0/GeEpiHandler.cpp Examining data/mriconvert-2.1.0/Globals.cpp Examining data/mriconvert-2.1.0/HandlerFactory.cpp Examining data/mriconvert-2.1.0/ImageView.cpp Examining data/mriconvert-2.1.0/InfoFrame.cpp Examining data/mriconvert-2.1.0/jcsTree.cpp Examining data/mriconvert-2.1.0/MainHeader.cpp Examining data/mriconvert-2.1.0/McFrame.cpp Examining data/mriconvert-2.1.0/McPanel.cpp Examining data/mriconvert-2.1.0/McVerter.cpp Examining data/mriconvert-2.1.0/MessageList.cpp Examining data/mriconvert-2.1.0/MetaHeader.cpp Examining data/mriconvert-2.1.0/MetaOptionsDlg.cpp Examining data/mriconvert-2.1.0/MRIConvert.cpp Examining data/mriconvert-2.1.0/NewBvOutputter.cpp Examining data/mriconvert-2.1.0/NewMetaOutputter.cpp Examining data/mriconvert-2.1.0/NewMetaVolume.cpp Examining data/mriconvert-2.1.0/NewSpmOutputter.cpp Examining data/mriconvert-2.1.0/NewSpmVolume.cpp Examining data/mriconvert-2.1.0/NiftiOptionsDlg.cpp Examining data/mriconvert-2.1.0/NiftiOutputterBase.cpp Examining data/mriconvert-2.1.0/NiftiOutputter.cpp Examining data/mriconvert-2.1.0/NiftiVolume.cpp Examining data/mriconvert-2.1.0/NoOptionsDlg.cpp Examining data/mriconvert-2.1.0/NumarisMosaicHandler.cpp Examining data/mriconvert-2.1.0/OutputFactory.cpp Examining data/mriconvert-2.1.0/OutputList.cpp Examining data/mriconvert-2.1.0/OutputterBase.cpp Examining data/mriconvert-2.1.0/OutputTreeNew.cpp Examining data/mriconvert-2.1.0/OverrideDlg.cpp Examining data/mriconvert-2.1.0/OverwriteDlg.cpp Examining data/mriconvert-2.1.0/Preamble.cpp Examining data/mriconvert-2.1.0/SeriesHandler.cpp Examining data/mriconvert-2.1.0/SpmOptionsDlg.cpp Examining data/mriconvert-2.1.0/StringConvert.cpp Examining data/mriconvert-2.1.0/SyngoHandler.cpp Examining data/mriconvert-2.1.0/SyngoMosaicHandler.cpp Examining data/mriconvert-2.1.0/TextFileViewer.cpp Examining data/mriconvert-2.1.0/ValueRepresentations.cpp Examining data/mriconvert-2.1.0/Volume.cpp Examining data/mriconvert-2.1.0/AchievaDtiHandler.h Examining data/mriconvert-2.1.0/AnalyzeOptionsDlg.h Examining data/mriconvert-2.1.0/AnalyzeOutputter.h Examining data/mriconvert-2.1.0/AnalyzeVolume.h Examining data/mriconvert-2.1.0/Basic3DOutputter.h Examining data/mriconvert-2.1.0/BasicOptionsDlg.h Examining data/mriconvert-2.1.0/BasicVolumeFormat.h Examining data/mriconvert-2.1.0/BvFiles.h Examining data/mriconvert-2.1.0/BvOptionsDlg.h Examining data/mriconvert-2.1.0/ByteSwap.h Examining data/mriconvert-2.1.0/ConfigValues.h Examining data/mriconvert-2.1.0/Converter.h Examining data/mriconvert-2.1.0/DicomDictionary.h Examining data/mriconvert-2.1.0/DicomElement.h Examining data/mriconvert-2.1.0/DicomElementInstance.h Examining data/mriconvert-2.1.0/DicomFile.h Examining data/mriconvert-2.1.0/DicomTag.h Examining data/mriconvert-2.1.0/DicomTags.h Examining data/mriconvert-2.1.0/DicomTree.h Examining data/mriconvert-2.1.0/DicomViewer.h Examining data/mriconvert-2.1.0/Dictionary.h Examining data/mriconvert-2.1.0/EnhancedMrHandler.h Examining data/mriconvert-2.1.0/ExciteDictionary.h Examining data/mriconvert-2.1.0/fileformats.h Examining data/mriconvert-2.1.0/FslNiftiOutputter.h Examining data/mriconvert-2.1.0/GeDti2Handler.h Examining data/mriconvert-2.1.0/GeDtiRbHandler.h Examining data/mriconvert-2.1.0/GeEpiHandler.h Examining data/mriconvert-2.1.0/Globals.h Examining data/mriconvert-2.1.0/HandlerFactory.h Examining data/mriconvert-2.1.0/ImageView.h Examining data/mriconvert-2.1.0/InfoFrame.h Examining data/mriconvert-2.1.0/jcsTree.h Examining data/mriconvert-2.1.0/MainHeader.h Examining data/mriconvert-2.1.0/McFrame.h Examining data/mriconvert-2.1.0/McPanel.h Examining data/mriconvert-2.1.0/McVerter.h Examining data/mriconvert-2.1.0/MessageList.h Examining data/mriconvert-2.1.0/MetaHeader.h Examining data/mriconvert-2.1.0/MetaOptionsDlg.h Examining data/mriconvert-2.1.0/metaTypes.h Examining data/mriconvert-2.1.0/MRIConvert.h Examining data/mriconvert-2.1.0/NewBvOutputter.h Examining data/mriconvert-2.1.0/NewMetaOutputter.h Examining data/mriconvert-2.1.0/NewMetaVolume.h Examining data/mriconvert-2.1.0/NewSpmOutputter.h Examining data/mriconvert-2.1.0/NewSpmVolume.h Examining data/mriconvert-2.1.0/nifti1.h Examining data/mriconvert-2.1.0/NiftiOptionsDlg.h Examining data/mriconvert-2.1.0/NiftiOutputterBase.h Examining data/mriconvert-2.1.0/NiftiOutputter.h Examining data/mriconvert-2.1.0/NiftiVolume.h Examining data/mriconvert-2.1.0/NoOptionsDlg.h Examining data/mriconvert-2.1.0/NumarisDictionary.h Examining data/mriconvert-2.1.0/NumarisMosaicHandler.h Examining data/mriconvert-2.1.0/OutputFactory.h Examining data/mriconvert-2.1.0/OutputList.h Examining data/mriconvert-2.1.0/OutputterBase.h Examining data/mriconvert-2.1.0/OutputTreeNew.h Examining data/mriconvert-2.1.0/OverrideDlg.h Examining data/mriconvert-2.1.0/OverwriteDlg.h Examining data/mriconvert-2.1.0/PhilipsDictionary.h Examining data/mriconvert-2.1.0/Preamble.h Examining data/mriconvert-2.1.0/ReadStream.h Examining data/mriconvert-2.1.0/resource.h Examining data/mriconvert-2.1.0/SeriesHandler.h Examining data/mriconvert-2.1.0/SpmOptionsDlg.h Examining data/mriconvert-2.1.0/StringConvert.h Examining data/mriconvert-2.1.0/SyngoHandler.h Examining data/mriconvert-2.1.0/SyngoMosaicHandler.h Examining data/mriconvert-2.1.0/TextFileViewer.h Examining data/mriconvert-2.1.0/ToshibaDictionary.h Examining data/mriconvert-2.1.0/ValueRepresentations.h Examining data/mriconvert-2.1.0/version_string.h Examining data/mriconvert-2.1.0/Volume.h FINAL RESULTS: data/mriconvert-2.1.0/AnalyzeVolume.h:23:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char data_type[10]; data/mriconvert-2.1.0/AnalyzeVolume.h:24:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char db_name[18]; data/mriconvert-2.1.0/AnalyzeVolume.h:56:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char descrip[80]; data/mriconvert-2.1.0/AnalyzeVolume.h:57:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char aux_file[24]; data/mriconvert-2.1.0/AnalyzeVolume.h:59:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char originator[10]; data/mriconvert-2.1.0/AnalyzeVolume.h:60:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char generated[10]; data/mriconvert-2.1.0/AnalyzeVolume.h:61:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char scannum[10]; data/mriconvert-2.1.0/AnalyzeVolume.h:62:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char patient_id[10]; data/mriconvert-2.1.0/AnalyzeVolume.h:63:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char exp_date[10]; data/mriconvert-2.1.0/AnalyzeVolume.h:64:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char exp_time[10]; data/mriconvert-2.1.0/AnalyzeVolume.h:65:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char hist_un0[3]; data/mriconvert-2.1.0/BasicVolumeFormat.cpp:69:17: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). mHeaderFile.open((const char *) mFileName.GetFullPath(), mode); data/mriconvert-2.1.0/BasicVolumeFormat.cpp:112:20: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). mRawDataFile.open((const char *) mFileName.GetFullPath(), o_mode); data/mriconvert-2.1.0/BvFiles.cpp:59:9: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). mFile.open(filename.c_str(), mode); data/mriconvert-2.1.0/BvFiles.cpp:140:9: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). mFile.open(filename.c_str(), mode); data/mriconvert-2.1.0/BvFiles.cpp:171:9: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). mFile.open(filename.c_str(), mode); data/mriconvert-2.1.0/DicomElementInstance.h:45:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char value_buff[1024]; data/mriconvert-2.1.0/DicomElementInstance.h:46:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char vr_buff[3]; data/mriconvert-2.1.0/DicomFile.cpp:17:14: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). mInputFile.open((const char *) filename, std::ios::binary); data/mriconvert-2.1.0/DicomFile.cpp:594:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). output.open(filename); data/mriconvert-2.1.0/DicomViewer.cpp:310:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char char_buffer[64]; data/mriconvert-2.1.0/ImageView.cpp:698:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(new_ptr, old_ptr, rows*columns*sizeof(unsigned char)); data/mriconvert-2.1.0/NewSpmVolume.h:28:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char data_type[10]; data/mriconvert-2.1.0/NewSpmVolume.h:29:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char db_name[18]; data/mriconvert-2.1.0/NewSpmVolume.h:61:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char descrip[80]; data/mriconvert-2.1.0/NewSpmVolume.h:62:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char aux_file[24]; data/mriconvert-2.1.0/NewSpmVolume.h:65:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char generated[10]; data/mriconvert-2.1.0/NewSpmVolume.h:66:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char scannum[10]; data/mriconvert-2.1.0/NewSpmVolume.h:67:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char patient_id[10]; data/mriconvert-2.1.0/NewSpmVolume.h:68:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char exp_date[10]; data/mriconvert-2.1.0/NewSpmVolume.h:69:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char exp_time[10]; data/mriconvert-2.1.0/NewSpmVolume.h:70:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char hist_un0[3]; data/mriconvert-2.1.0/NiftiOutputter.h:280:7: [2] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). Risk is low because the source is a constant string. strcpy(mHeader->hdr.magic, "n+1"); data/mriconvert-2.1.0/NiftiOutputter.h:284:7: [2] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). Risk is low because the source is a constant string. strcpy(mHeader->hdr.magic, "ni1"); data/mriconvert-2.1.0/Preamble.h:13:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buff[4]; data/mriconvert-2.1.0/metaTypes.h:85:16: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. const unsigned char MET_ValueTypeSize[MET_NUM_VALUE_TYPES] = { data/mriconvert-2.1.0/metaTypes.h:88:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. const char MET_ValueTypeName[MET_NUM_VALUE_TYPES][21] = { data/mriconvert-2.1.0/metaTypes.h:126:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. const char MET_OrientationTypeName[MET_NUM_ORIENTATION_TYPES][3] = { data/mriconvert-2.1.0/metaTypes.h:139:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char name[255]; // Fieldname / keyword to designate a variable data/mriconvert-2.1.0/nifti1.h:142:2: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char data_type[10]; /*!< ++UNUSED++ */ /* char data_type[10]; */ data/mriconvert-2.1.0/nifti1.h:143:2: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char db_name[18]; /*!< ++UNUSED++ */ /* char db_name[18]; */ data/mriconvert-2.1.0/nifti1.h:176:2: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char descrip[80]; /*!< any text you like. */ /* char descrip[80]; */ data/mriconvert-2.1.0/nifti1.h:177:2: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char aux_file[24]; /*!< auxiliary filename. */ /* char aux_file[24]; */ data/mriconvert-2.1.0/nifti1.h:193:2: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char intent_name[16];/*!< 'name' or meaning of data. */ data/mriconvert-2.1.0/nifti1.h:195:2: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char magic[4] ; /*!< MUST be "ni1\0" or "n+1\0". */ data/mriconvert-2.1.0/nifti1.h:280:26: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct nifti1_extender { char extension[4] ; } ; data/mriconvert-2.1.0/DicomElementInstance.cpp:31:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(de.value_length), sizeof(de.value_length)); data/mriconvert-2.1.0/DicomElementInstance.cpp:36:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(vl), sizeof(vl)); data/mriconvert-2.1.0/DicomElementInstance.cpp:43:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(de.value_length), sizeof(de.value_length)); data/mriconvert-2.1.0/DicomElementInstance.cpp:52:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(de.value_buff, std::min((long unsigned)sizeof(de.value_buff), (long unsigned)n_to_read)); data/mriconvert-2.1.0/DicomFile.cpp:845:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input.read(reinterpret_cast<char*> (&e.tag.group), 2); data/mriconvert-2.1.0/DicomFile.cpp:846:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input.read(reinterpret_cast<char*> (&e.tag.element), 2); data/mriconvert-2.1.0/DicomFile.cpp:880:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input.read(reinterpret_cast<char*> (&e.value_length), data/mriconvert-2.1.0/DicomFile.cpp:895:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input.read(reinterpret_cast<char*> (&e.value_length), data/mriconvert-2.1.0/DicomFile.cpp:901:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input.read(reinterpret_cast<char*> (&vl_16), data/mriconvert-2.1.0/DicomFile.cpp:929:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input.read(reinterpret_cast<char*> (&item.value_length), data/mriconvert-2.1.0/DicomFile.cpp:950:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input.read(reinterpret_cast<char*> (&item.value_length), data/mriconvert-2.1.0/DicomFile.cpp:1001:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mInputFile.read(reinterpret_cast<char*> (&item.value_length), data/mriconvert-2.1.0/DicomFile.cpp:1023:18: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mInputFile.read(reinterpret_cast<char*> (&item.value_length), data/mriconvert-2.1.0/DicomFile.cpp:1142:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ss.read(reinterpret_cast<char*> (&item.value_length), sizeof(item.value_length)); data/mriconvert-2.1.0/DicomFile.cpp:1183:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ss.read(reinterpret_cast<char*> (&item.value_length), data/mriconvert-2.1.0/DicomTag.cpp:61:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(dt.group), sizeof(dt.group)); data/mriconvert-2.1.0/DicomTag.cpp:62:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(dt.element), sizeof(dt.element)); data/mriconvert-2.1.0/DicomViewer.cpp:312:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(char_buffer, 64); data/mriconvert-2.1.0/DicomViewer.cpp:320:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&n_values), 4); data/mriconvert-2.1.0/DicomViewer.cpp:321:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(char_buffer, 4); data/mriconvert-2.1.0/DicomViewer.cpp:328:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&intval1), 4); data/mriconvert-2.1.0/DicomViewer.cpp:329:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&intval2), 4); data/mriconvert-2.1.0/DicomViewer.cpp:330:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&intval3), 4); data/mriconvert-2.1.0/DicomViewer.cpp:338:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&intval1), 4); data/mriconvert-2.1.0/DicomViewer.cpp:339:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&intval2), 4); data/mriconvert-2.1.0/DicomViewer.cpp:340:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&intval3), 4); data/mriconvert-2.1.0/DicomViewer.cpp:341:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&intval4), 4); data/mriconvert-2.1.0/DicomViewer.cpp:366:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (in.good()) { in.read(reinterpret_cast<char*> (&intval1), 4); } data/mriconvert-2.1.0/DicomViewer.cpp:367:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (in.good()) { in.read(reinterpret_cast<char*> (&intval2), 4); } data/mriconvert-2.1.0/DicomViewer.cpp:368:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (in.good()) { in.read(reinterpret_cast<char*> (&intval3), 4); } data/mriconvert-2.1.0/DicomViewer.cpp:369:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (in.good()) { in.read(reinterpret_cast<char*> (&intval4), 4); } data/mriconvert-2.1.0/NewSpmVolume.cpp:74:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hk.sizeof_hdr), data/mriconvert-2.1.0/NewSpmVolume.cpp:85:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hk.sizeof_hdr), data/mriconvert-2.1.0/NewSpmVolume.cpp:87:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hk.data_type), data/mriconvert-2.1.0/NewSpmVolume.cpp:89:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hk.db_name), data/mriconvert-2.1.0/NewSpmVolume.cpp:91:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hk.extents), data/mriconvert-2.1.0/NewSpmVolume.cpp:93:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hk.session_error), data/mriconvert-2.1.0/NewSpmVolume.cpp:95:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hk.regular), data/mriconvert-2.1.0/NewSpmVolume.cpp:97:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hk.hkey_un0), data/mriconvert-2.1.0/NewSpmVolume.cpp:99:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.dim), data/mriconvert-2.1.0/NewSpmVolume.cpp:101:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.unused8), data/mriconvert-2.1.0/NewSpmVolume.cpp:103:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.unused9), data/mriconvert-2.1.0/NewSpmVolume.cpp:105:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.unused10), data/mriconvert-2.1.0/NewSpmVolume.cpp:107:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.unused11), data/mriconvert-2.1.0/NewSpmVolume.cpp:109:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.unused12), data/mriconvert-2.1.0/NewSpmVolume.cpp:111:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.unused13), data/mriconvert-2.1.0/NewSpmVolume.cpp:113:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.unused14), data/mriconvert-2.1.0/NewSpmVolume.cpp:115:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.datatype), data/mriconvert-2.1.0/NewSpmVolume.cpp:117:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.bitpix), data/mriconvert-2.1.0/NewSpmVolume.cpp:119:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.dim_un0), data/mriconvert-2.1.0/NewSpmVolume.cpp:121:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.pixdim), data/mriconvert-2.1.0/NewSpmVolume.cpp:123:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.vox_offset), data/mriconvert-2.1.0/NewSpmVolume.cpp:125:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.scale), data/mriconvert-2.1.0/NewSpmVolume.cpp:127:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.intercept), data/mriconvert-2.1.0/NewSpmVolume.cpp:129:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.funused3), data/mriconvert-2.1.0/NewSpmVolume.cpp:131:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.cal_max), data/mriconvert-2.1.0/NewSpmVolume.cpp:133:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.cal_min), data/mriconvert-2.1.0/NewSpmVolume.cpp:135:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.compressed), data/mriconvert-2.1.0/NewSpmVolume.cpp:137:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.verified), data/mriconvert-2.1.0/NewSpmVolume.cpp:139:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.glmax), data/mriconvert-2.1.0/NewSpmVolume.cpp:141:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.dime.glmin), data/mriconvert-2.1.0/NewSpmVolume.cpp:143:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.descrip), data/mriconvert-2.1.0/NewSpmVolume.cpp:145:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.aux_file), data/mriconvert-2.1.0/NewSpmVolume.cpp:147:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.orient), data/mriconvert-2.1.0/NewSpmVolume.cpp:149:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.origin), data/mriconvert-2.1.0/NewSpmVolume.cpp:151:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.generated), data/mriconvert-2.1.0/NewSpmVolume.cpp:153:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.scannum), data/mriconvert-2.1.0/NewSpmVolume.cpp:155:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.patient_id), data/mriconvert-2.1.0/NewSpmVolume.cpp:157:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.exp_date), data/mriconvert-2.1.0/NewSpmVolume.cpp:159:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.exp_time), data/mriconvert-2.1.0/NewSpmVolume.cpp:161:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.hist_un0), data/mriconvert-2.1.0/NewSpmVolume.cpp:163:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.views), data/mriconvert-2.1.0/NewSpmVolume.cpp:165:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.vols_added), data/mriconvert-2.1.0/NewSpmVolume.cpp:167:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.start_field), data/mriconvert-2.1.0/NewSpmVolume.cpp:169:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.field_skip), data/mriconvert-2.1.0/NewSpmVolume.cpp:171:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.omax), data/mriconvert-2.1.0/NewSpmVolume.cpp:173:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.omin), data/mriconvert-2.1.0/NewSpmVolume.cpp:175:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.smax), data/mriconvert-2.1.0/NewSpmVolume.cpp:177:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). mHeaderFile.read(reinterpret_cast <char*> (&mHeader.hist.smin), data/mriconvert-2.1.0/Preamble.cpp:19:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(p.buff, sizeof(p.buff)); data/mriconvert-2.1.0/ReadStream.h:29:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&value), (length - bytes_read)); data/mriconvert-2.1.0/ReadStream.h:32:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read(reinterpret_cast<char*> (&value), sizeof(value)); data/mriconvert-2.1.0/ValueRepresentations.cpp:231:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(tmp), sizeof(tmp)); data/mriconvert-2.1.0/ValueRepresentations.cpp:264:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(tmp), sizeof(tmp)); data/mriconvert-2.1.0/ValueRepresentations.cpp:343:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(tmp), sizeof(tmp)); data/mriconvert-2.1.0/ValueRepresentations.cpp:377:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(tmp), sizeof(tmp)); data/mriconvert-2.1.0/ValueRepresentations.cpp:432:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(tmp), sizeof(tmp)); data/mriconvert-2.1.0/ValueRepresentations.cpp:476:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(tmp), sizeof(tmp)); data/mriconvert-2.1.0/ValueRepresentations.cpp:542:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(tmp), sizeof(tmp)); data/mriconvert-2.1.0/ValueRepresentations.cpp:587:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). in.read((char *)&(tmp), sizeof(tmp)); ANALYSIS SUMMARY: Hits = 136 Lines analyzed = 25079 in approximately 0.81 seconds (30932 lines/second) Physical Source Lines of Code (SLOC) = 16978 Hits@level = [0] 0 [1] 90 [2] 46 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 136 [1+] 136 [2+] 46 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 8.01037 [1+] 8.01037 [2+] 2.70939 [3+] 0 [4+] 0 [5+] 0 Dot directories skipped = 1 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.