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/exult-1.6/actions.cc
Examining data/exult-1.6/actions.h
Examining data/exult-1.6/actorio.cc
Examining data/exult-1.6/actors.cc
Examining data/exult-1.6/actors.h
Examining data/exult-1.6/args.cc
Examining data/exult-1.6/args.h
Examining data/exult-1.6/audio/Audio.cc
Examining data/exult-1.6/audio/Audio.h
Examining data/exult-1.6/audio/AudioChannel.cc
Examining data/exult-1.6/audio/AudioChannel.h
Examining data/exult-1.6/audio/AudioMixer.cc
Examining data/exult-1.6/audio/AudioMixer.h
Examining data/exult-1.6/audio/AudioSample.cc
Examining data/exult-1.6/audio/AudioSample.h
Examining data/exult-1.6/audio/Midi.cc
Examining data/exult-1.6/audio/Midi.h
Examining data/exult-1.6/audio/OggAudioSample.cc
Examining data/exult-1.6/audio/OggAudioSample.h
Examining data/exult-1.6/audio/RawAudioSample.cc
Examining data/exult-1.6/audio/RawAudioSample.h
Examining data/exult-1.6/audio/VocAudioSample.cc
Examining data/exult-1.6/audio/VocAudioSample.h
Examining data/exult-1.6/audio/WavAudioSample.cc
Examining data/exult-1.6/audio/WavAudioSample.h
Examining data/exult-1.6/audio/conv.cc
Examining data/exult-1.6/audio/conv.h
Examining data/exult-1.6/audio/convmusic.h
Examining data/exult-1.6/audio/midi_drivers/ALSAMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/ALSAMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/CoreAudioMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/CoreAudioMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/CoreMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/CoreMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/FileMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/FileMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/FluidSynthMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/FluidSynthMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/KMIDI.cc
Examining data/exult-1.6/audio/midi_drivers/KMIDI.h
Examining data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/MT32EmuMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/MT32EmuMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/MidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/MidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/TimidityMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/TimidityMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/UnixSeqMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/UnixSeqMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/WindowsMidiDriver.cpp
Examining data/exult-1.6/audio/midi_drivers/WindowsMidiDriver.h
Examining data/exult-1.6/audio/midi_drivers/XMidiEvent.h
Examining data/exult-1.6/audio/midi_drivers/XMidiEventList.cpp
Examining data/exult-1.6/audio/midi_drivers/XMidiEventList.h
Examining data/exult-1.6/audio/midi_drivers/XMidiFile.cpp
Examining data/exult-1.6/audio/midi_drivers/XMidiFile.h
Examining data/exult-1.6/audio/midi_drivers/XMidiNoteStack.h
Examining data/exult-1.6/audio/midi_drivers/XMidiSequence.cpp
Examining data/exult-1.6/audio/midi_drivers/XMidiSequence.h
Examining data/exult-1.6/audio/midi_drivers/XMidiSequenceHandler.h
Examining data/exult-1.6/audio/midi_drivers/fmopl.cpp
Examining data/exult-1.6/audio/midi_drivers/fmopl.h
Examining data/exult-1.6/audio/midi_drivers/forked_player.cc
Examining data/exult-1.6/audio/midi_drivers/forked_player.h
Examining data/exult-1.6/audio/midi_drivers/mixer_midiout.cc
Examining data/exult-1.6/audio/midi_drivers/mixer_midiout.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Analog.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Analog.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/BReverbModel.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/BReverbModel.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Enumerations.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/File.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/File.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/FileStream.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/FileStream.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/LA32FloatWaveGenerator.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/LA32FloatWaveGenerator.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/LA32Ramp.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/LA32Ramp.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/LA32WaveGenerator.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/LA32WaveGenerator.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/MemoryRegion.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/MidiEventQueue.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/MidiStreamParser.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/MidiStreamParser.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Part.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Part.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Partial.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Partial.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/PartialManager.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/PartialManager.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Poly.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Poly.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/ROMInfo.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/ROMInfo.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Structures.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Synth.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/TVA.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/TVA.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/TVF.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/TVF.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/TVP.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/TVP.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Tables.cpp
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Tables.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/Types.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/globals.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/internals.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/mmath.h
Examining data/exult-1.6/audio/midi_drivers/mt32emu/mt32emu.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_common.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_controls.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_controls.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_filter.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_filter.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_instrum.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_instrum.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_mix.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_mix.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_output.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_output.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_playmidi.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_playmidi.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_readmidi.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_readmidi.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_resample.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_resample.h
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_sdl_a.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_sdl_c.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_tables.cpp
Examining data/exult-1.6/audio/midi_drivers/timidity/timidity_tables.h
Examining data/exult-1.6/audio/soundtest.cc
Examining data/exult-1.6/audio/soundtest.h
Examining data/exult-1.6/audio/u7audiotool.cc
Examining data/exult-1.6/browser.cc
Examining data/exult-1.6/browser.h
Examining data/exult-1.6/cheat.cc
Examining data/exult-1.6/cheat.h
Examining data/exult-1.6/cheat_screen.cc
Examining data/exult-1.6/cheat_screen.h
Examining data/exult-1.6/combat.cc
Examining data/exult-1.6/combat.h
Examining data/exult-1.6/combat_opts.h
Examining data/exult-1.6/conf/Configuration.cc
Examining data/exult-1.6/conf/Configuration.h
Examining data/exult-1.6/conf/XMLEntity.cc
Examining data/exult-1.6/conf/XMLEntity.h
Examining data/exult-1.6/conf/xmain.cc
Examining data/exult-1.6/delobjs.cc
Examining data/exult-1.6/delobjs.h
Examining data/exult-1.6/dir.cc
Examining data/exult-1.6/dir.h
Examining data/exult-1.6/drag.cc
Examining data/exult-1.6/drag.h
Examining data/exult-1.6/effects.cc
Examining data/exult-1.6/effects.h
Examining data/exult-1.6/exult.cc
Examining data/exult-1.6/exult.h
Examining data/exult-1.6/exult_constants.h
Examining data/exult-1.6/exulticon.h
Examining data/exult-1.6/exultmenu.cc
Examining data/exult-1.6/exultmenu.h
Examining data/exult-1.6/files/Flat.cc
Examining data/exult-1.6/files/Flat.h
Examining data/exult-1.6/files/Flex.cc
Examining data/exult-1.6/files/Flex.h
Examining data/exult-1.6/files/IFF.cc
Examining data/exult-1.6/files/IFF.h
Examining data/exult-1.6/files/Table.cc
Examining data/exult-1.6/files/Table.h
Examining data/exult-1.6/files/U7file.cc
Examining data/exult-1.6/files/U7file.h
Examining data/exult-1.6/files/U7fileman.cc
Examining data/exult-1.6/files/U7fileman.h
Examining data/exult-1.6/files/U7obj.cc
Examining data/exult-1.6/files/U7obj.h
Examining data/exult-1.6/files/crc.cc
Examining data/exult-1.6/files/crc.h
Examining data/exult-1.6/files/databuf.h
Examining data/exult-1.6/files/listfiles.cc
Examining data/exult-1.6/files/listfiles.h
Examining data/exult-1.6/files/msgfile.cc
Examining data/exult-1.6/files/msgfile.h
Examining data/exult-1.6/files/rwregress.cc
Examining data/exult-1.6/files/sha1/sha1.cpp
Examining data/exult-1.6/files/sha1/sha1.h
Examining data/exult-1.6/files/snprintf.cc
Examining data/exult-1.6/files/utils.cc
Examining data/exult-1.6/files/utils.h
Examining data/exult-1.6/files/zip/unzip.cc
Examining data/exult-1.6/files/zip/unzip.h
Examining data/exult-1.6/files/zip/zip.cc
Examining data/exult-1.6/files/zip/zip.h
Examining data/exult-1.6/flic/playfli.cc
Examining data/exult-1.6/flic/playfli.h
Examining data/exult-1.6/fnames.h
Examining data/exult-1.6/frameseq.h
Examining data/exult-1.6/game.cc
Examining data/exult-1.6/game.h
Examining data/exult-1.6/gameclk.cc
Examining data/exult-1.6/gameclk.h
Examining data/exult-1.6/gamedat.cc
Examining data/exult-1.6/gamemap.cc
Examining data/exult-1.6/gamemap.h
Examining data/exult-1.6/gamemgr/bggame.cc
Examining data/exult-1.6/gamemgr/bggame.h
Examining data/exult-1.6/gamemgr/devgame.cc
Examining data/exult-1.6/gamemgr/devgame.h
Examining data/exult-1.6/gamemgr/modmgr.cc
Examining data/exult-1.6/gamemgr/modmgr.h
Examining data/exult-1.6/gamemgr/sigame.cc
Examining data/exult-1.6/gamemgr/sigame.h
Examining data/exult-1.6/gamerend.cc
Examining data/exult-1.6/gamerend.h
Examining data/exult-1.6/gamewin.cc
Examining data/exult-1.6/gamewin.h
Examining data/exult-1.6/gumps/Actor_gump.cc
Examining data/exult-1.6/gumps/Actor_gump.h
Examining data/exult-1.6/gumps/AudioOptions_gump.cc
Examining data/exult-1.6/gumps/AudioOptions_gump.h
Examining data/exult-1.6/gumps/Book_gump.cc
Examining data/exult-1.6/gumps/Book_gump.h
Examining data/exult-1.6/gumps/CombatStats_gump.cc
Examining data/exult-1.6/gumps/CombatStats_gump.h
Examining data/exult-1.6/gumps/Enabled_button.cc
Examining data/exult-1.6/gumps/Enabled_button.h
Examining data/exult-1.6/gumps/Face_button.cc
Examining data/exult-1.6/gumps/Face_button.h
Examining data/exult-1.6/gumps/Face_stats.cc
Examining data/exult-1.6/gumps/Face_stats.h
Examining data/exult-1.6/gumps/File_gump.cc
Examining data/exult-1.6/gumps/File_gump.h
Examining data/exult-1.6/gumps/Gamemenu_gump.cc
Examining data/exult-1.6/gumps/Gamemenu_gump.h
Examining data/exult-1.6/gumps/GameplayOptions_gump.cc
Examining data/exult-1.6/gumps/GameplayOptions_gump.h
Examining data/exult-1.6/gumps/Gump.cc
Examining data/exult-1.6/gumps/Gump.h
Examining data/exult-1.6/gumps/Gump_ToggleButton.cc
Examining data/exult-1.6/gumps/Gump_ToggleButton.h
Examining data/exult-1.6/gumps/Gump_button.cc
Examining data/exult-1.6/gumps/Gump_button.h
Examining data/exult-1.6/gumps/Gump_factory.cc
Examining data/exult-1.6/gumps/Gump_factory.h
Examining data/exult-1.6/gumps/Gump_manager.cc
Examining data/exult-1.6/gumps/Gump_manager.h
Examining data/exult-1.6/gumps/Gump_model.cc
Examining data/exult-1.6/gumps/Gump_model.h
Examining data/exult-1.6/gumps/Gump_widget.cc
Examining data/exult-1.6/gumps/Gump_widget.h
Examining data/exult-1.6/gumps/Jawbone_gump.cc
Examining data/exult-1.6/gumps/Jawbone_gump.h
Examining data/exult-1.6/gumps/MiscOptions_gump.cc
Examining data/exult-1.6/gumps/MiscOptions_gump.h
Examining data/exult-1.6/gumps/Modal_gump.h
Examining data/exult-1.6/gumps/Newfile_gump.cc
Examining data/exult-1.6/gumps/Newfile_gump.h
Examining data/exult-1.6/gumps/Notebook_gump.cc
Examining data/exult-1.6/gumps/Notebook_gump.h
Examining data/exult-1.6/gumps/Paperdoll_gump.cc
Examining data/exult-1.6/gumps/Paperdoll_gump.h
Examining data/exult-1.6/gumps/Scroll_gump.cc
Examining data/exult-1.6/gumps/Scroll_gump.h
Examining data/exult-1.6/gumps/ShortcutBar_gump.cc
Examining data/exult-1.6/gumps/ShortcutBar_gump.h
Examining data/exult-1.6/gumps/Sign_gump.cc
Examining data/exult-1.6/gumps/Sign_gump.h
Examining data/exult-1.6/gumps/Slider_gump.cc
Examining data/exult-1.6/gumps/Slider_gump.h
Examining data/exult-1.6/gumps/Spellbook_gump.cc
Examining data/exult-1.6/gumps/Spellbook_gump.h
Examining data/exult-1.6/gumps/Stats_gump.cc
Examining data/exult-1.6/gumps/Stats_gump.h
Examining data/exult-1.6/gumps/Text_button.cc
Examining data/exult-1.6/gumps/Text_button.h
Examining data/exult-1.6/gumps/Text_gump.cc
Examining data/exult-1.6/gumps/Text_gump.h
Examining data/exult-1.6/gumps/VideoOptions_gump.cc
Examining data/exult-1.6/gumps/VideoOptions_gump.h
Examining data/exult-1.6/gumps/Yesno_gump.cc
Examining data/exult-1.6/gumps/Yesno_gump.h
Examining data/exult-1.6/gumps/gump_types.h
Examining data/exult-1.6/gumps/gump_utils.h
Examining data/exult-1.6/gumps/iphone_gumps.cc
Examining data/exult-1.6/gumps/iphone_gumps.h
Examining data/exult-1.6/gumps/misc_buttons.cc
Examining data/exult-1.6/gumps/misc_buttons.h
Examining data/exult-1.6/hash_utils.h
Examining data/exult-1.6/headers/array_size.h
Examining data/exult-1.6/headers/common_types.h
Examining data/exult-1.6/headers/exceptions.h
Examining data/exult-1.6/headers/gamma.h
Examining data/exult-1.6/headers/ignore_unused_variable_warning.h
Examining data/exult-1.6/headers/ios_state.hpp
Examining data/exult-1.6/headers/pent_include.h
Examining data/exult-1.6/imagewin/ArbScaler.h
Examining data/exult-1.6/imagewin/BilinearScaler.cpp
Examining data/exult-1.6/imagewin/BilinearScaler.h
Examining data/exult-1.6/imagewin/BilinearScalerInternal.h
Examining data/exult-1.6/imagewin/BilinearScalerInternal_2x.cpp
Examining data/exult-1.6/imagewin/BilinearScalerInternal_Arb.cpp
Examining data/exult-1.6/imagewin/BilinearScalerInternal_X1Y12.cpp
Examining data/exult-1.6/imagewin/BilinearScalerInternal_X2Y24.cpp
Examining data/exult-1.6/imagewin/PointScaler.cpp
Examining data/exult-1.6/imagewin/PointScaler.h
Examining data/exult-1.6/imagewin/ibuf16.cc
Examining data/exult-1.6/imagewin/ibuf16.h
Examining data/exult-1.6/imagewin/ibuf8.cc
Examining data/exult-1.6/imagewin/ibuf8.h
Examining data/exult-1.6/imagewin/imagebuf.cc
Examining data/exult-1.6/imagewin/imagebuf.h
Examining data/exult-1.6/imagewin/imagewin.cc
Examining data/exult-1.6/imagewin/imagewin.h
Examining data/exult-1.6/imagewin/iwin8.cc
Examining data/exult-1.6/imagewin/iwin8.h
Examining data/exult-1.6/imagewin/manip.h
Examining data/exult-1.6/imagewin/savepcx.cc
Examining data/exult-1.6/imagewin/scale_2x.cc
Examining data/exult-1.6/imagewin/scale_2x.h
Examining data/exult-1.6/imagewin/scale_2xSaI.cc
Examining data/exult-1.6/imagewin/scale_2xSaI.h
Examining data/exult-1.6/imagewin/scale_bilinear.cc
Examining data/exult-1.6/imagewin/scale_bilinear.h
Examining data/exult-1.6/imagewin/scale_gl.cc
Examining data/exult-1.6/imagewin/scale_hq2x.cc
Examining data/exult-1.6/imagewin/scale_hq2x.h
Examining data/exult-1.6/imagewin/scale_hq3x.cc
Examining data/exult-1.6/imagewin/scale_hq3x.h
Examining data/exult-1.6/imagewin/scale_hq4x.cc
Examining data/exult-1.6/imagewin/scale_hq4x.h
Examining data/exult-1.6/imagewin/scale_hqnx.h
Examining data/exult-1.6/imagewin/scale_interlace.cc
Examining data/exult-1.6/imagewin/scale_interlace.h
Examining data/exult-1.6/imagewin/scale_point.cc
Examining data/exult-1.6/imagewin/scale_point.h
Examining data/exult-1.6/imagewin/scale_xbr.cc
Examining data/exult-1.6/imagewin/scale_xbr.h
Examining data/exult-1.6/istring.cc
Examining data/exult-1.6/istring.h
Examining data/exult-1.6/keyactions.cc
Examining data/exult-1.6/keyactions.h
Examining data/exult-1.6/keys.cc
Examining data/exult-1.6/keys.h
Examining data/exult-1.6/mapedit/bargeedit.cc
Examining data/exult-1.6/mapedit/chunklst.h
Examining data/exult-1.6/mapedit/combo.cc
Examining data/exult-1.6/mapedit/combo.h
Examining data/exult-1.6/mapedit/compile.cc
Examining data/exult-1.6/mapedit/contedit.cc
Examining data/exult-1.6/mapedit/eggedit.cc
Examining data/exult-1.6/mapedit/execbox.cc
Examining data/exult-1.6/mapedit/execbox.h
Examining data/exult-1.6/mapedit/exult_studio.cc
Examining data/exult-1.6/mapedit/gtk_redefines.h
Examining data/exult-1.6/mapedit/locator.cc
Examining data/exult-1.6/mapedit/locator.h
Examining data/exult-1.6/mapedit/maps.cc
Examining data/exult-1.6/mapedit/npcedit.cc
Examining data/exult-1.6/mapedit/npclst.cc
Examining data/exult-1.6/mapedit/npclst.h
Examining data/exult-1.6/mapedit/objbrowse.cc
Examining data/exult-1.6/mapedit/objbrowse.h
Examining data/exult-1.6/mapedit/objedit.cc
Examining data/exult-1.6/mapedit/paledit.cc
Examining data/exult-1.6/mapedit/paledit.h
Examining data/exult-1.6/mapedit/paltest.cc
Examining data/exult-1.6/mapedit/shapedraw.cc
Examining data/exult-1.6/mapedit/shapedraw.h
Examining data/exult-1.6/mapedit/shapeedit.cc
Examining data/exult-1.6/mapedit/shapefile.cc
Examining data/exult-1.6/mapedit/shapefile.h
Examining data/exult-1.6/mapedit/shapegroup.cc
Examining data/exult-1.6/mapedit/shapegroup.h
Examining data/exult-1.6/mapedit/shapelst.cc
Examining data/exult-1.6/mapedit/shapelst.h
Examining data/exult-1.6/mapedit/shapetest.cc
Examining data/exult-1.6/mapedit/studio.cc
Examining data/exult-1.6/mapedit/studio.h
Examining data/exult-1.6/mapedit/tools/mockup/defs.h
Examining data/exult-1.6/mapedit/tools/mockup/main.c
Examining data/exult-1.6/mapedit/tools/mockup/main.h
Examining data/exult-1.6/mapedit/tools/smooth/config.c
Examining data/exult-1.6/mapedit/tools/smooth/config.h
Examining data/exult-1.6/mapedit/tools/smooth/globals.h
Examining data/exult-1.6/mapedit/tools/smooth/image.c
Examining data/exult-1.6/mapedit/tools/smooth/image.h
Examining data/exult-1.6/mapedit/tools/smooth/linked.c
Examining data/exult-1.6/mapedit/tools/smooth/linked.h
Examining data/exult-1.6/mapedit/tools/smooth/param.c
Examining data/exult-1.6/mapedit/tools/smooth/param.h
Examining data/exult-1.6/mapedit/tools/smooth/plugin.c
Examining data/exult-1.6/mapedit/tools/smooth/plugin.h
Examining data/exult-1.6/mapedit/tools/smooth/plugins/plugin_randomize.c
Examining data/exult-1.6/mapedit/tools/smooth/plugins/plugin_smooth.c
Examining data/exult-1.6/mapedit/tools/smooth/plugins/plugin_stream.c
Examining data/exult-1.6/mapedit/tools/smooth/smooth.c
Examining data/exult-1.6/mapedit/tools/smooth/smooth.h
Examining data/exult-1.6/mapedit/u7shp.c
Examining data/exult-1.6/mapedit/ucbrowse.cc
Examining data/exult-1.6/mapedit/ucbrowse.h
Examining data/exult-1.6/mapedit/uniquepal.c
Examining data/exult-1.6/mapedit/chunklst.cc
Examining data/exult-1.6/menulist.cc
Examining data/exult-1.6/menulist.h
Examining data/exult-1.6/monsters.cc
Examining data/exult-1.6/monsters.h
Examining data/exult-1.6/mouse.cc
Examining data/exult-1.6/mouse.h
Examining data/exult-1.6/msvc9/exconfig/StdAfx.cpp
Examining data/exult-1.6/msvc9/exconfig/StdAfx.h
Examining data/exult-1.6/msvc9/exconfig/exconfig.cpp
Examining data/exult-1.6/msvc9/exconfig/exconfig.h
Examining data/exult-1.6/msvc9/exconfig/resource.h
Examining data/exult-1.6/msvc9/msvc_kludges.cc
Examining data/exult-1.6/msvc9/msvc_kludges.h
Examining data/exult-1.6/msvc9/unistd.h
Examining data/exult-1.6/msvcstuff/exconfig/StdAfx.cpp
Examining data/exult-1.6/msvcstuff/exconfig/StdAfx.h
Examining data/exult-1.6/msvcstuff/exconfig/exconfig.cpp
Examining data/exult-1.6/msvcstuff/exconfig/exconfig.h
Examining data/exult-1.6/msvcstuff/exconfig/resource.h
Examining data/exult-1.6/msvcstuff/msvc_kludges.cc
Examining data/exult-1.6/msvcstuff/msvc_kludges.h
Examining data/exult-1.6/msvcstuff/unistd.h
Examining data/exult-1.6/npcnear.cc
Examining data/exult-1.6/npcnear.h
Examining data/exult-1.6/npctime.cc
Examining data/exult-1.6/npctime.h
Examining data/exult-1.6/objs/animate.cc
Examining data/exult-1.6/objs/animate.h
Examining data/exult-1.6/objs/barge.cc
Examining data/exult-1.6/objs/barge.h
Examining data/exult-1.6/objs/chunks.cc
Examining data/exult-1.6/objs/chunks.h
Examining data/exult-1.6/objs/chunkter.cc
Examining data/exult-1.6/objs/chunkter.h
Examining data/exult-1.6/objs/citerate.h
Examining data/exult-1.6/objs/contain.cc
Examining data/exult-1.6/objs/contain.h
Examining data/exult-1.6/objs/egg.cc
Examining data/exult-1.6/objs/egg.h
Examining data/exult-1.6/objs/find_nearby.h
Examining data/exult-1.6/objs/flags.h
Examining data/exult-1.6/objs/iregobjs.cc
Examining data/exult-1.6/objs/iregobjs.h
Examining data/exult-1.6/objs/jawbone.cc
Examining data/exult-1.6/objs/jawbone.h
Examining data/exult-1.6/objs/mappatch.cc
Examining data/exult-1.6/objs/mappatch.h
Examining data/exult-1.6/objs/objclient.cc
Examining data/exult-1.6/objs/objclient.h
Examining data/exult-1.6/objs/objiter.cc
Examining data/exult-1.6/objs/objiter.h
Examining data/exult-1.6/objs/objlist.h
Examining data/exult-1.6/objs/objnames.cc
Examining data/exult-1.6/objs/objs.cc
Examining data/exult-1.6/objs/objs.h
Examining data/exult-1.6/objs/ordinfo.h
Examining data/exult-1.6/objs/spellbook.cc
Examining data/exult-1.6/objs/spellbook.h
Examining data/exult-1.6/objs/virstone.cc
Examining data/exult-1.6/objs/virstone.h
Examining data/exult-1.6/opengl/gltest1.cc
Examining data/exult-1.6/opengl/gltest2.cc
Examining data/exult-1.6/opengl/gltest3.cc
Examining data/exult-1.6/opengl/model.cc
Examining data/exult-1.6/opengl/model.h
Examining data/exult-1.6/opengl/model3ds.cc
Examining data/exult-1.6/opengl/modelgl.cc
Examining data/exult-1.6/palette.cc
Examining data/exult-1.6/palette.h
Examining data/exult-1.6/party.cc
Examining data/exult-1.6/party.h
Examining data/exult-1.6/pathfinder/Astar.cc
Examining data/exult-1.6/pathfinder/Astar.h
Examining data/exult-1.6/pathfinder/PathFinder.cc
Examining data/exult-1.6/pathfinder/PathFinder.h
Examining data/exult-1.6/pathfinder/Zombie.cc
Examining data/exult-1.6/pathfinder/Zombie.h
Examining data/exult-1.6/pathfinder/path.cc
Examining data/exult-1.6/paths.cc
Examining data/exult-1.6/paths.h
Examining data/exult-1.6/readnpcs.cc
Examining data/exult-1.6/rect.h
Examining data/exult-1.6/schedule.cc
Examining data/exult-1.6/schedule.h
Examining data/exult-1.6/sdl-compat.h
Examining data/exult-1.6/server/objserial.cc
Examining data/exult-1.6/server/objserial.h
Examining data/exult-1.6/server/servemsg.cc
Examining data/exult-1.6/server/servemsg.h
Examining data/exult-1.6/server/server.cc
Examining data/exult-1.6/server/server.h
Examining data/exult-1.6/server/servewin32.cc
Examining data/exult-1.6/server/servewin32.h
Examining data/exult-1.6/shapeid.cc
Examining data/exult-1.6/shapeid.h
Examining data/exult-1.6/shapes/baseinf.h
Examining data/exult-1.6/shapes/data_utils.h
Examining data/exult-1.6/shapes/font.cc
Examining data/exult-1.6/shapes/font.h
Examining data/exult-1.6/shapes/fontgen.cc
Examining data/exult-1.6/shapes/fontgen.h
Examining data/exult-1.6/shapes/fontvga.cc
Examining data/exult-1.6/shapes/fontvga.h
Examining data/exult-1.6/shapes/glshape.cc
Examining data/exult-1.6/shapes/glshape.h
Examining data/exult-1.6/shapes/items.cc
Examining data/exult-1.6/shapes/items.h
Examining data/exult-1.6/shapes/miscinf.cc
Examining data/exult-1.6/shapes/miscinf.h
Examining data/exult-1.6/shapes/pngio.cc
Examining data/exult-1.6/shapes/pngio.h
Examining data/exult-1.6/shapes/ready.h
Examining data/exult-1.6/shapes/shapeinf.cc
Examining data/exult-1.6/shapes/shapeinf.h
Examining data/exult-1.6/shapes/shapeinf/ammoinf.cc
Examining data/exult-1.6/shapes/shapeinf/ammoinf.h
Examining data/exult-1.6/shapes/shapeinf/aniinf.cc
Examining data/exult-1.6/shapes/shapeinf/aniinf.h
Examining data/exult-1.6/shapes/shapeinf/armorinf.cc
Examining data/exult-1.6/shapes/shapeinf/armorinf.h
Examining data/exult-1.6/shapes/shapeinf/bodyinf.cc
Examining data/exult-1.6/shapes/shapeinf/bodyinf.h
Examining data/exult-1.6/shapes/shapeinf/continf.cc
Examining data/exult-1.6/shapes/shapeinf/continf.h
Examining data/exult-1.6/shapes/shapeinf/effhpinf.cc
Examining data/exult-1.6/shapes/shapeinf/effhpinf.h
Examining data/exult-1.6/shapes/shapeinf/expinf.cc
Examining data/exult-1.6/shapes/shapeinf/expinf.h
Examining data/exult-1.6/shapes/shapeinf/frflags.cc
Examining data/exult-1.6/shapes/shapeinf/frflags.h
Examining data/exult-1.6/shapes/shapeinf/frnameinf.cc
Examining data/exult-1.6/shapes/shapeinf/frnameinf.h
Examining data/exult-1.6/shapes/shapeinf/frusefun.cc
Examining data/exult-1.6/shapes/shapeinf/frusefun.h
Examining data/exult-1.6/shapes/shapeinf/monstinf.cc
Examining data/exult-1.6/shapes/shapeinf/monstinf.h
Examining data/exult-1.6/shapes/shapeinf/npcdollinf.cc
Examining data/exult-1.6/shapes/shapeinf/npcdollinf.h
Examining data/exult-1.6/shapes/shapeinf/objdollinf.cc
Examining data/exult-1.6/shapes/shapeinf/objdollinf.h
Examining data/exult-1.6/shapes/shapeinf/sfxinf.cc
Examining data/exult-1.6/shapes/shapeinf/sfxinf.h
Examining data/exult-1.6/shapes/shapeinf/warminf.cc
Examining data/exult-1.6/shapes/shapeinf/warminf.h
Examining data/exult-1.6/shapes/shapeinf/weaponinf.cc
Examining data/exult-1.6/shapes/shapeinf/weaponinf.h
Examining data/exult-1.6/shapes/shapevga.cc
Examining data/exult-1.6/shapes/shapevga.h
Examining data/exult-1.6/shapes/shapewrite.cc
Examining data/exult-1.6/shapes/u7drag.cc
Examining data/exult-1.6/shapes/u7drag.h
Examining data/exult-1.6/shapes/vgafile.cc
Examining data/exult-1.6/shapes/vgafile.h
Examining data/exult-1.6/singles.h
Examining data/exult-1.6/tiles.h
Examining data/exult-1.6/tools/cmanip.cc
Examining data/exult-1.6/tools/expack.cc
Examining data/exult-1.6/tools/gnome_shp_thumbnailer.cc
Examining data/exult-1.6/tools/ipack.cc
Examining data/exult-1.6/tools/mklink.cc
Examining data/exult-1.6/tools/rip.cc
Examining data/exult-1.6/tools/shp2pcx.cc
Examining data/exult-1.6/tools/splitshp.cc
Examining data/exult-1.6/tools/textpack.cc
Examining data/exult-1.6/tools/u7voice2syx.cc
Examining data/exult-1.6/tools/uctools.h
Examining data/exult-1.6/tools/wuc.cc
Examining data/exult-1.6/tqueue.cc
Examining data/exult-1.6/tqueue.h
Examining data/exult-1.6/txtscroll.cc
Examining data/exult-1.6/txtscroll.h
Examining data/exult-1.6/usecode/bgintrinsics.h
Examining data/exult-1.6/usecode/compiler/basic_block.h
Examining data/exult-1.6/usecode/compiler/ucclass.cc
Examining data/exult-1.6/usecode/compiler/ucclass.h
Examining data/exult-1.6/usecode/compiler/ucdefs.h
Examining data/exult-1.6/usecode/compiler/ucexpr.cc
Examining data/exult-1.6/usecode/compiler/ucexpr.h
Examining data/exult-1.6/usecode/compiler/ucfun.cc
Examining data/exult-1.6/usecode/compiler/ucfun.h
Examining data/exult-1.6/usecode/compiler/ucloc.cc
Examining data/exult-1.6/usecode/compiler/ucloc.h
Examining data/exult-1.6/usecode/compiler/ucmain.cc
Examining data/exult-1.6/usecode/compiler/ucstmt.cc
Examining data/exult-1.6/usecode/compiler/ucstmt.h
Examining data/exult-1.6/usecode/compiler/ucsym.cc
Examining data/exult-1.6/usecode/compiler/ucsym.h
Examining data/exult-1.6/usecode/conversation.cc
Examining data/exult-1.6/usecode/conversation.h
Examining data/exult-1.6/usecode/debugmsg.h
Examining data/exult-1.6/usecode/debugserver.cc
Examining data/exult-1.6/usecode/debugserver.h
Examining data/exult-1.6/usecode/intrinsics.cc
Examining data/exult-1.6/usecode/keyring.cc
Examining data/exult-1.6/usecode/keyring.h
Examining data/exult-1.6/usecode/opcodes.h
Examining data/exult-1.6/usecode/sibetaintrinsics.h
Examining data/exult-1.6/usecode/siintrinsics.h
Examining data/exult-1.6/usecode/stackframe.cc
Examining data/exult-1.6/usecode/stackframe.h
Examining data/exult-1.6/usecode/ucdebugging.cc
Examining data/exult-1.6/usecode/ucdebugging.h
Examining data/exult-1.6/usecode/ucdisasm.cc
Examining data/exult-1.6/usecode/ucfunction.cc
Examining data/exult-1.6/usecode/ucfunction.h
Examining data/exult-1.6/usecode/ucinternal.cc
Examining data/exult-1.6/usecode/ucinternal.h
Examining data/exult-1.6/usecode/ucmachine.cc
Examining data/exult-1.6/usecode/ucmachine.h
Examining data/exult-1.6/usecode/ucsched.cc
Examining data/exult-1.6/usecode/ucsched.h
Examining data/exult-1.6/usecode/ucscriptop.h
Examining data/exult-1.6/usecode/ucserial.cc
Examining data/exult-1.6/usecode/ucserial.h
Examining data/exult-1.6/usecode/ucsymtbl.cc
Examining data/exult-1.6/usecode/ucsymtbl.h
Examining data/exult-1.6/usecode/ucxt/head2data.cc
Examining data/exult-1.6/usecode/ucxt/include/ops.h
Examining data/exult-1.6/usecode/ucxt/include/ucc.h
Examining data/exult-1.6/usecode/ucxt/include/ucdata.h
Examining data/exult-1.6/usecode/ucxt/include/ucfunc.h
Examining data/exult-1.6/usecode/ucxt/src/ops.cc
Examining data/exult-1.6/usecode/ucxt/src/ucdata.cc
Examining data/exult-1.6/usecode/ucxt/src/ucfunc.cc
Examining data/exult-1.6/usecode/ucxt/src/ucxt.cc
Examining data/exult-1.6/usecode/usefuns.h
Examining data/exult-1.6/usecode/useval.cc
Examining data/exult-1.6/usecode/useval.h
Examining data/exult-1.6/version.cc
Examining data/exult-1.6/version.h
Examining data/exult-1.6/win32/exconfig.cc
Examining data/exult-1.6/win32/exconfig.h
Examining data/exult-1.6/windrag.cc
Examining data/exult-1.6/windrag.h
Examining data/exult-1.6/xdrag.cc
Examining data/exult-1.6/xdrag.h

FINAL RESULTS:

data/exult-1.6/msvc9/exconfig/exconfig.cpp:197:20:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
	if (network) std::strncat(p, "\\\\", MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:199:12:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
	else std::strncat(p, "\\", MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:203:8:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
		std::strncat(p, d->name, MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:205:15:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
		if (d) std::strncat(p, "\\", MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:255:9:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			std::strncat(lpszValue, "\n", MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:256:9:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			std::strncat(lpszValue, p, MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:261:9:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			std::strncat(lpszValue, "\n", MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:262:9:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			std::strncat(lpszValue, si_pathdef, MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:197:20:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
	if (network) std::strncat(p, "\\\\", MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:199:12:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
	else std::strncat(p, "\\", MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:203:8:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
		std::strncat(p, d->name, MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:205:15:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
		if (d) std::strncat(p, "\\", MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:255:9:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			std::strncat(lpszValue, "\n", MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:256:9:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			std::strncat(lpszValue, p, MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:261:9:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			std::strncat(lpszValue, "\n", MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:262:9:  [5] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is high; the length parameter
  appears to be a constant, instead of computing the number of characters
  left.
			std::strncat(lpszValue, si_pathdef, MAX_STRLEN);
data/exult-1.6/audio/Midi.cc:56:12:  [4] (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).
using std::strcpy;
data/exult-1.6/audio/midi_drivers/forked_player.cc:42:2:  [4] (shell) execlp:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	execlp("playmidi","playmidi","-v","-v","-e",name,static_cast<char *>(0));
data/exult-1.6/audio/midi_drivers/mt32emu/Structures.h:168:25:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	} MT32EMU_ALIGN_PACKED system;
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:231:2:  [4] (format) vprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	vprintf(fmt, list);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:640:10:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	mt32ram.system.masterTune = 0x4A; // Confirmed on CM-64
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:641:10:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	mt32ram.system.reverbMode = 0; // Confirmed
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:642:10:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	mt32ram.system.reverbTime = 5; // Confirmed
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:643:10:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	mt32ram.system.reverbLevel = 3; // Confirmed
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:644:17:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	memcpy(mt32ram.system.reserveSettings, &controlROMData[controlROMMap->reserveSettings], 9); // Confirmed
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:650:11:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
		mt32ram.system.chanAssign[i] = i + 1;
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:652:10:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	mt32ram.system.masterVol = 100; // Confirmed
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1197:87:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	systemMemoryRegion = new SystemMemoryRegion(this, reinterpret_cast<Bit8u *>(&mt32ram.system), &controlROMData[controlROMMap->systemMaxTable]);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1495:45:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	float masterTune = 440.0f * EXP2F((mt32ram.system.masterTune - 64.0f) / (128.0f * 12.0f));
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1502:60:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	printDebug(" Reverb: mode=%d, time=%d, level=%d", mt32ram.system.reverbMode, mt32ram.system.reverbTime, mt32ram.system.reverbLevel);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1502:87:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	printDebug(" Reverb: mode=%d, time=%d, level=%d", mt32ram.system.reverbMode, mt32ram.system.reverbTime, mt32ram.system.reverbLevel);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1502:114:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	printDebug(" Reverb: mode=%d, time=%d, level=%d", mt32ram.system.reverbMode, mt32ram.system.reverbTime, mt32ram.system.reverbLevel);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1510:41:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	reportHandler->onNewReverbMode(mt32ram.system.reverbMode);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1511:41:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	reportHandler->onNewReverbTime(mt32ram.system.reverbTime);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1512:42:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	reportHandler->onNewReverbLevel(mt32ram.system.reverbLevel);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1515:14:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	if (mt32ram.system.reverbTime == 0 && mt32ram.system.reverbLevel == 0) {
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1515:48:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	if (mt32ram.system.reverbTime == 0 && mt32ram.system.reverbLevel == 0) {
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1520:38:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
		reverbModel = reverbModels[mt32ram.system.reverbMode];
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1537:38:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
		reverbModel->setParameters(mt32ram.system.reverbTime, mt32ram.system.reverbLevel);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1537:65:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
		reverbModel->setParameters(mt32ram.system.reverbTime, mt32ram.system.reverbLevel);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1542:24:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	Bit8u *rset = mt32ram.system.reserveSettings;
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1559:24:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
		Bit8u chan = mt32ram.system.chanAssign[i];
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1566:24:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	Bit8u *rset = mt32ram.system.chanAssign;
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1573:43:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	printDebug(" Master volume: %d", mt32ram.system.masterVol);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.h:31:48:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define ATTR_PRINTF(x,y) __attribute__((format(printf, (x), (y))))
data/exult-1.6/audio/midi_drivers/mt32emu/TVA.cpp:38:44:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	partial(usePartial), ampRamp(useAmpRamp), system(&usePartial->getSynth()->mt32ram.system), phase(TVA_PHASE_DEAD) {
data/exult-1.6/audio/midi_drivers/mt32emu/TVA.cpp:38:84:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	partial(usePartial), ampRamp(useAmpRamp), system(&usePartial->getSynth()->mt32ram.system), phase(TVA_PHASE_DEAD) {
data/exult-1.6/audio/midi_drivers/mt32emu/TVA.cpp:102:96:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
static int calcBasicAmp(const Tables *tables, const Partial *partial, const MemParams::System *system, const TimbreParam::PartialParam *partialParam, const MemParams::PatchTemp *patchTemp, const MemParams::RhythmTemp *rhythmTemp, int biasAmpSubtraction, int veloAmpSubtraction, Bit8u expression) {
data/exult-1.6/audio/midi_drivers/mt32emu/TVA.cpp:172:48:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	int newTarget = calcBasicAmp(tables, partial, system, partialParam, patchTemp, newRhythmTemp, biasAmpSubtraction, veloAmpSubtraction, part->getExpression());
data/exult-1.6/audio/midi_drivers/mt32emu/TVA.cpp:224:48:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	int newTarget = calcBasicAmp(tables, partial, system, partialParam, patchTemp, rhythmTemp, biasAmpSubtraction, veloAmpSubtraction, part->getExpression());
data/exult-1.6/audio/midi_drivers/mt32emu/TVA.cpp:286:45:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
		newTarget = calcBasicAmp(tables, partial, system, partialParam, patchTemp, rhythmTemp, biasAmpSubtraction, veloAmpSubtraction, part->getExpression());
data/exult-1.6/audio/midi_drivers/mt32emu/TVA.h:66:34:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	const MemParams::System * const system;
data/exult-1.6/audio/midi_drivers/mt32emu/TVP.cpp:55:23:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	partial(usePartial), system(&usePartial->getSynth()->mt32ram.system) {
data/exult-1.6/audio/midi_drivers/mt32emu/TVP.cpp:55:63:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	partial(usePartial), system(&usePartial->getSynth()->mt32ram.system) {
data/exult-1.6/audio/midi_drivers/mt32emu/TVP.h:33:34:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	const MemParams::System * const system; // FIXME: Only necessary because masterTune calculation is done in the wrong place atm.
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:213:4:  [4] (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).
			strcpy((bank->tone[i].name=safe_Malloc<char>(strlen(w[1])+1)),w[1]);
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:115:4:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
			sprintf(tmp, *(dec+1), tmp2);
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:116:11:  [4] (shell) popen:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
			return popen(tmp, "r");
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:167:5:  [4] (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).
				strcpy(current_filename, plp->path);
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:173:6:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
					strcat(current_filename, PATH_STRING);
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:175:4:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
			strcat(current_filename, name);
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:251:2:  [4] (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).
	strcpy(path,s);
data/exult-1.6/audio/midi_drivers/timidity/timidity_controls.h:73:48:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define ATTR_PRINTF(x,y) __attribute__((format(printf, (x), (y))))
data/exult-1.6/audio/midi_drivers/timidity/timidity_instrum.cpp:211:5:  [4] (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).
				strcpy(path, name);
data/exult-1.6/audio/midi_drivers/timidity/timidity_instrum.cpp:212:5:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
				strcat(path, patch_ext[i]);
data/exult-1.6/audio/midi_drivers/timidity/timidity_sdl_c.cpp:46:48:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define ATTR_PRINTF(x,y) __attribute__((format(printf, (x), (y))))
data/exult-1.6/audio/midi_drivers/timidity/timidity_sdl_c.cpp:111:2:  [4] (format) vsprintf:
  Potential format string problem (CWE-134). Make format string constant.
	vsprintf(timidity_error, fmt, ap);
data/exult-1.6/browser.cc:35:12:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
extern int snprintf(char *, size_t, const char *, /*args*/ ...);
data/exult-1.6/browser.cc:37:9:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
using ::snprintf;
data/exult-1.6/cheat.cc:65:12:  [4] (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).
using std::strcpy;
data/exult-1.6/cheat.cc:66:12:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
using std::strcat;
data/exult-1.6/cheat.cc:196:14:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
			int ret = system(cmnd.c_str());
data/exult-1.6/files/listfiles.cc:69:2:  [4] (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).
	strcpy(stripped_path, path.c_str());
data/exult-1.6/files/listfiles.cc:89:4:  [4] (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).
			strcpy(filename, stripped_path);
data/exult-1.6/files/listfiles.cc:93:9:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
			std::strcat(filename, fileinfo.cFileName);
data/exult-1.6/files/snprintf.cc:394:27:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
#define portable_snprintf snprintf
data/exult-1.6/files/snprintf.cc:396:28:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
#define portable_vsnprintf vsnprintf
data/exult-1.6/files/snprintf.cc:917:40:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
					if (fmt_spec == 'p') str_arg_l += sprintf(tmp + str_arg_l, f, ptr_arg);
data/exult-1.6/files/snprintf.cc:922:21:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
							str_arg_l += sprintf(tmp + str_arg_l, f, int_arg);
data/exult-1.6/files/snprintf.cc:925:21:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
							str_arg_l += sprintf(tmp + str_arg_l, f, long_arg);
data/exult-1.6/files/snprintf.cc:929:21:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
							str_arg_l += sprintf(tmp + str_arg_l, f, long_long_arg);
data/exult-1.6/files/snprintf.cc:937:21:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
							str_arg_l += sprintf(tmp + str_arg_l, f, uint_arg);
data/exult-1.6/files/snprintf.cc:940:21:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
							str_arg_l += sprintf(tmp + str_arg_l, f, ulong_arg);
data/exult-1.6/files/snprintf.cc:944:21:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
							str_arg_l += sprintf(tmp + str_arg_l, f, ulong_long_arg);
data/exult-1.6/files/utils.cc:875:7:  [4] (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).
	std::strcpy(ret, s);
data/exult-1.6/files/utils.cc:891:3:  [4] (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).
		strcpy(to, from);   // Default map.
data/exult-1.6/files/utils.cc:897:3:  [4] (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).
		strcpy(to + len, MULTIMAP_DIR);
data/exult-1.6/files/utils.cc:902:3:  [4] (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).
		strcpy(to + len + 2, sep);
data/exult-1.6/files/utils.h:38:48:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define ATTR_PRINTF(x,y) __attribute__((format(printf, (x), (y))))
data/exult-1.6/files/utils.h:45:12:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
extern int snprintf(char *, size_t, const char *, /*args*/ ...) ATTR_PRINTF(3,4);
data/exult-1.6/game.cc:55:12:  [4] (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).
using std::strcpy;
data/exult-1.6/game.cc:426:2:  [4] (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).
	strcpy(av_name, name);
data/exult-1.6/gamedat.cc:77:12:  [4] (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).
using std::strcpy;
data/exult-1.6/gamedat.cc:115:3:  [4] (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).
		strcpy(fname, basepath);
data/exult-1.6/gamedat.cc:250:2:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
	snprintf(fname, 50, SAVENAME, num,
data/exult-1.6/gamedat.cc:448:2:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
	snprintf(fname, 50, SAVENAME, num,
data/exult-1.6/gamedat.cc:465:3:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
		snprintf(fname, 50, SAVENAME, static_cast<int>(i),
data/exult-1.6/gamedat.cc:654:2:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
	snprintf(fname, 50, SAVENAME, num,
data/exult-1.6/gamedat.cc:673:2:  [4] (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).
	strcpy(name, buf);
data/exult-1.6/gamedat.cc:698:3:  [4] (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).
		strcpy(fname, GAMEDAT);
data/exult-1.6/gamedat.cc:778:2:  [4] (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).
	strcpy(name, namebuf);
data/exult-1.6/gamedat.cc:831:2:  [4] (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).
	strcpy(oname, dirname);
data/exult-1.6/gamedat.cc:944:2:  [4] (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).
	strcpy(oname, GAMEDAT);
data/exult-1.6/gamerend.cc:29:12:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
extern int snprintf(char *, size_t, const char *, /*args*/ ...);
data/exult-1.6/gamerend.cc:31:9:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
using ::snprintf;
data/exult-1.6/gamewin.cc:578:2:  [4] (format) vsprintf:
  Potential format string problem (CWE-134). Make format string constant.
	vsprintf(buf, msg, ap);     // Format the message.
data/exult-1.6/gamewin.h:49:48:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define ATTR_PRINTF(x,y) __attribute__((format(printf, (x), (y))))
data/exult-1.6/gumps/Newfile_gump.cc:54:12:  [4] (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).
using std::strcpy;
data/exult-1.6/gumps/Newfile_gump.cc:55:12:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
using std::strcat;
data/exult-1.6/gumps/Newfile_gump.cc:484:3:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
		snprintf(info, sizeof(info), infostring, party[0].name,
data/exult-1.6/gumps/Newfile_gump.cc:643:3:  [4] (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).
		strcpy(newname, games[selected].savename);
data/exult-1.6/gumps/Newfile_gump.cc:902:2:  [4] (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).
	strcpy(text, newname);
data/exult-1.6/gumps/Newfile_gump.cc:905:2:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
	strcat(text, newname + cursor);
data/exult-1.6/gumps/Newfile_gump.cc:912:2:  [4] (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).
	strcpy(newname, text);
data/exult-1.6/gumps/Newfile_gump.cc:985:2:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
	snprintf(mask, 256, SAVENAME2, GAME_BG ? "bg" : GAME_SI ? "si" : "dev");
data/exult-1.6/gumps/Newfile_gump.cc:996:3:  [4] (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).
		strcpy(games[i].filename, filenames[i].c_str());
data/exult-1.6/gumps/Text_gump.cc:29:12:  [4] (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).
using std::strcpy;
data/exult-1.6/gumps/Text_gump.cc:43:3:  [4] (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).
		strcpy(newtext, text);
data/exult-1.6/gumps/Text_gump.cc:48:2:  [4] (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).
	strcpy(newtext + textlen, str); // Append new.
data/exult-1.6/imagewin/imagewin.cc:1345:4:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
			snprintf(factor_str, 15, (factor & 1) ? " x%d.5" : " x%d", factor / 2);
data/exult-1.6/keys.cc:586:4:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
			strcat(returned_key, iter->c_str());
data/exult-1.6/mapedit/execbox.cc:195:3:  [4] (shell) execvp:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
		execvp(file, const_cast<char **>(argv)); // Become the new command.
data/exult-1.6/mapedit/maps.cc:159:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(pname, "%s%02x", PATCH_U7IFIX, schunk);
data/exult-1.6/mapedit/maps.cc:160:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(sname, "%s%02x", U7IFIX, schunk);
data/exult-1.6/mapedit/npcedit.cc:830:2:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
	strcat(lname, numptr);      // Same number as button.
data/exult-1.6/mapedit/shapegroup.cc:376:3:  [4] (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).
		strcpy(reinterpret_cast<char *>(buf), nm);
data/exult-1.6/mapedit/shapelst.cc:889:12:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	int ret = system(cmd.c_str());
data/exult-1.6/mapedit/shapelst.cc:1235:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(fullname, "%s%02d.png", fname, i);
data/exult-1.6/mapedit/shapelst.cc:1280:2:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	sprintf(fullname, "%s%02d.png", fname, 0);
data/exult-1.6/mapedit/shapelst.cc:1317:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(fullname, "%s%02d.png", fname, i);
data/exult-1.6/mapedit/studio.cc:592:3:  [4] (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).
		strcpy(path, xmldir);
data/exult-1.6/mapedit/studio.cc:594:3:  [4] (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).
		strcpy(path, EXULT_DATADIR);
data/exult-1.6/mapedit/studio.cc:2626:2:  [4] (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).
	strcpy(addr.sun_path, get_system_path(EXULT_SERVER).c_str());
data/exult-1.6/mapedit/studio.h:44:48:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define ATTR_PRINTF(x,y) __attribute__((format(printf, (x), (y))))
data/exult-1.6/mapedit/tools/mockup/main.c:111:4:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
			fscanf(f, "%s %u", cmd, &j);
data/exult-1.6/mapedit/tools/smooth/config.c:86:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
				sprintf(pluginname, "libsmooth_%s.dll", line);
data/exult-1.6/mapedit/tools/smooth/config.c:88:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
				sprintf(pluginname, "libsmooth_%s.so", line);
data/exult-1.6/msvc9/msvc_kludges.h:117:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
using ::printf;
data/exult-1.6/msvc9/msvc_kludges.h:160:9:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
#define snprintf _snprintf
data/exult-1.6/msvc9/msvc_kludges.h:160:18:  [4] (format) _snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
#define snprintf _snprintf
data/exult-1.6/msvcstuff/msvc_kludges.h:126:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
using ::printf;
data/exult-1.6/msvcstuff/msvc_kludges.h:168:9:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
#define snprintf _snprintf
data/exult-1.6/msvcstuff/msvc_kludges.h:168:18:  [4] (format) _snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
#define snprintf _snprintf
data/exult-1.6/objs/objnames.cc:35:48:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define ATTR_PRINTF(x,y) __attribute__((format(printf, (x), (y))))
data/exult-1.6/objs/objnames.cc:43:12:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
extern int snprintf(char *, size_t, const char *, /*args*/ ...) ATTR_PRINTF(3,4);
data/exult-1.6/objs/objnames.cc:45:9:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
using ::snprintf;
data/exult-1.6/server/server.cc:155:3:  [4] (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).
		strcpy(addr.sun_path, servename.c_str());
data/exult-1.6/server/server.cc:423:4:  [4] (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).
			strcpy(reinterpret_cast<char *>(wptr), nm.c_str());
data/exult-1.6/server/servewin32.cc:65:2:  [4] (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).
	strcpy(filename, path);
data/exult-1.6/tools/ipack.cc:56:12:  [4] (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).
using std::strcpy;
data/exult-1.6/tools/ipack.cc:57:12:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
using std::strcat;
data/exult-1.6/tools/ipack.cc:112:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(shapename, "%s%04d_", basename, i);
data/exult-1.6/tools/ipack.cc:313:7:  [4] (buffer) sscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
		if (sscanf(ptr, "%[^(](%d %s)", &fname[0], &dim0_cnt, &dir[0])
data/exult-1.6/tools/ipack.cc:413:2:  [4] (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).
	strcpy(txtpal, palname);
data/exult-1.6/tools/ipack.cc:450:2:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	sprintf(fullname, "%s%02d.png", basename, frnum);
data/exult-1.6/tools/ipack.cc:678:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(fullname, "%s%02d.png", basename, frnum);
data/exult-1.6/tools/rip.cc:36:3:  [4] (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).
		strcpy(filename, s);
data/exult-1.6/tools/rip.cc:117:4:  [4] (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).
			strcpy(filename, s);
data/exult-1.6/tools/shp2pcx.cc:440:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(outfilename, "%s%02i.pcx", outprefix, i);
data/exult-1.6/tools/splitshp.cc:38:12:  [4] (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).
using std::strcpy;
data/exult-1.6/tools/splitshp.cc:111:2:  [4] (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).
	strcpy(fn + dotpos + 4, shapefilename + dotpos);
data/exult-1.6/tools/wuc.cc:88:2:  [4] (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).
	strcpy(labels[lindex], token);
data/exult-1.6/tools/wuc.cc:207:5:  [4] (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).
				strcpy(curlabel, token);
data/exult-1.6/usecode/bgintrinsics.h:194:24:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	USECODE_INTRINSIC_PTR(printf),                        // 0xaa
data/exult-1.6/usecode/compiler/ucclass.cc:185:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
				sprintf(buf, "Duplicate decl. of virtual member function '%s'.", m->get_name());
data/exult-1.6/usecode/compiler/ucexpr.cc:108:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Can't use value of '%s'", var->get_name());
data/exult-1.6/usecode/compiler/ucexpr.cc:122:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Can't assign to '%s'", var->get_name());
data/exult-1.6/usecode/compiler/ucexpr.cc:138:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf, "'%s' must be 'shape#' or 'object#'",
data/exult-1.6/usecode/compiler/ucexpr.cc:493:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf,
data/exult-1.6/usecode/compiler/ucexpr.cc:721:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Return of intrinsic '%s' is not fun. ID", fun->get_name());
data/exult-1.6/usecode/compiler/ucexpr.cc:745:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf,
data/exult-1.6/usecode/compiler/ucexpr.cc:764:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
				sprintf(buf,
data/exult-1.6/usecode/compiler/ucexpr.cc:807:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "'%s' isn't a function or intrinsic",
data/exult-1.6/usecode/compiler/ucexpr.cc:819:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Can't assign to '%s'", var->get_name());
data/exult-1.6/usecode/compiler/ucexpr.cc:837:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Can't assign to '%s'", var->get_name());
data/exult-1.6/usecode/compiler/ucexpr.cc:855:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "%d argument%s missing in constructor of class '%s'",
data/exult-1.6/usecode/compiler/ucexpr.cc:860:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Too many arguments in constructor of class '%s'",
data/exult-1.6/usecode/compiler/ucfun.cc:78:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Name '%s' already defined", nm);
data/exult-1.6/usecode/compiler/ucfun.cc:423:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Prefix '%s' matches no string in this function",
data/exult-1.6/usecode/compiler/ucfun.cc:434:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Prefix '%s' matches more than one string", text);
data/exult-1.6/usecode/compiler/ucloc.cc:34:12:  [4] (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).
using std::strcpy;
data/exult-1.6/usecode/compiler/ucloc.cc:64:3:  [4] (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).
		strcpy(cur_source, s);
data/exult-1.6/usecode/compiler/ucmain.cc:43:12:  [4] (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).
using std::strcpy;
data/exult-1.6/usecode/compiler/ucstmt.cc:437:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "_%s_index", array->get_name());
data/exult-1.6/usecode/compiler/ucstmt.cc:441:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "_%s_size", array->get_name());
data/exult-1.6/usecode/compiler/ucsym.cc:138:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf, "Var '%s' contains fun. not declared as 'shape#' or 'object#'",
data/exult-1.6/usecode/compiler/ucsym.cc:143:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf, "Var '%s' contains a negative number", name.c_str());
data/exult-1.6/usecode/compiler/ucsym.cc:222:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(msg, "Symbol '%s' already declared", nm);
data/exult-1.6/usecode/compiler/ucsym.cc:252:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "Class name '%s' already exists.", nm);
data/exult-1.6/usecode/compiler/ucsym.cc:416:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf, "Treating function '%s' as being a 'shape#()' function.", nm);
data/exult-1.6/usecode/compiler/ucsym.cc:423:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf, "Treating function '%s' as being an 'object#()' function.", nm);
data/exult-1.6/usecode/compiler/ucsym.cc:467:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
				sprintf(buf, "Duplicate declaration of function '%s'.", nm);
data/exult-1.6/usecode/compiler/ucsym.cc:482:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf, "Duplicate declaration of function '%s'.", nm);
data/exult-1.6/usecode/compiler/ucsym.cc:489:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf,
data/exult-1.6/usecode/compiler/ucsym.cc:514:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf,
data/exult-1.6/usecode/compiler/ucsym.cc:551:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf,
data/exult-1.6/usecode/compiler/ucsym.cc:558:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf,
data/exult-1.6/usecode/compiler/ucsym.cc:579:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf,
data/exult-1.6/usecode/compiler/ucsym.cc:692:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(buf, "'%s' already declared", nm);
data/exult-1.6/usecode/compiler/ucsym.cc:696:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf, "Decl. of virtual member function '%s' doesn't match decl. from base class", nm);
data/exult-1.6/usecode/compiler/ucsym.cc:698:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf, "Decl. of '%s' doesn't match previous decl", nm);
data/exult-1.6/usecode/compiler/ucsym.cc:706:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
			sprintf(buf, "Decl. of '%s' has different usecode #.",
data/exult-1.6/usecode/compiler/ucsym.cc:726:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		sprintf(msg, "Symbol '%s' already declared", nm);
data/exult-1.6/usecode/conversation.cc:35:12:  [4] (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).
using std::strcpy;
data/exult-1.6/usecode/conversation.cc:461:3:  [4] (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).
		strcpy(&text[1], choices[i]);
data/exult-1.6/usecode/conversation.cc:493:3:  [4] (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).
		strcpy(result[i], answers[i].c_str());
data/exult-1.6/usecode/intrinsics.cc:3317:19:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
USECODE_INTRINSIC(printf) {
data/exult-1.6/usecode/sibetaintrinsics.h:223:24:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	USECODE_INTRINSIC_PTR(printf),                        // 0xc6 (Exult)
data/exult-1.6/usecode/siintrinsics.h:225:24:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	USECODE_INTRINSIC_PTR(printf),                        // 0xc7 (Exult)
data/exult-1.6/usecode/ucinternal.cc:98:12:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
using std::strcat;
data/exult-1.6/usecode/ucinternal.cc:101:12:  [4] (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).
using std::strcpy;
data/exult-1.6/usecode/ucinternal.cc:452:3:  [4] (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).
		strcpy(newstr, String);
data/exult-1.6/usecode/ucinternal.cc:454:12:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
		String = strcat(newstr, str);
data/exult-1.6/usecode/ucinternal.cc:456:12:  [4] (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).
		String = strcpy(newstr, str);
data/exult-1.6/usecode/ucinternal.h:387:25:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	USECODE_INTRINSIC_DECL(printf);
data/exult-1.6/usecode/ucxt/include/ucfunc.h:63:47:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
	         const unsigned int flag, const bool access)
data/exult-1.6/usecode/ucxt/include/ucfunc.h:64:56:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
		: _func(func), _offset(offset), _flag(flag), _access(access) {}
data/exult-1.6/usecode/ucxt/include/ucfunc.h:75:15:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
	bool         access() const {
data/exult-1.6/usecode/ucxt/src/ucdata.cc:256:17:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
			if (flags[i].access() == FlagData::GETFLAG)
data/exult-1.6/usecode/ucxt/src/ucdata.cc:258:22:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
			else if (flags[i].access() == FlagData::SETFLAG)
data/exult-1.6/usecode/ucxt/src/ucdata.cc:279:17:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
			if (flags[i].access() == FlagData::GETFLAG)
data/exult-1.6/usecode/ucxt/src/ucdata.cc:281:22:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
			else if (flags[i].access() == FlagData::SETFLAG)
data/exult-1.6/cheat.cc:206:14:  [3] (shell) CreateProcess:
  This causes a new process to execute and is difficult to use safely
  (CWE-78). Specify the application path in the first argument, NOT as part
  of the second, or embedded spaces could allow an attacker to force a
  different program to run.
			int ret = CreateProcess(NULL, const_cast<char*>(cmnd.c_str()), NULL, NULL,
data/exult-1.6/cheat.cc:206:14:  [3] (shell) CreateProcess:
  This causes a new process to execute and is difficult to use safely
  (CWE-78). Specify the application path in the first argument, NOT as part
  of the second, or embedded spaces could allow an attacker to force a
  different program to run.
			int ret = CreateProcess(NULL, const_cast<char*>(cmnd.c_str()), NULL, NULL,
data/exult-1.6/combat.cc:529:14:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	case Actor::random:
data/exult-1.6/exult.cc:528:17:  [3] (misc) LoadLibrary:
  Ensure that the full path to the library is specified, or current directory
  may be used (CWE-829, CWE-20). Use registry entry or GetWindowsDirectory to
  find library path, if you aren't already.
	HMODULE hLib = LoadLibrary(TEXT("DDRAW.DLL"));
data/exult-1.6/files/utils.cc:530:10:  [3] (misc) LoadLibrary:
  Ensure that the full path to the library is specified, or current directory
  may be used (CWE-829, CWE-20). Use registry entry or GetWindowsDirectory to
  find library path, if you aren't already.
		hLib = LoadLibrary("shell32.dll");
data/exult-1.6/files/utils.cc:663:14:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
	if ((home = getenv("HOME")) != 0)
data/exult-1.6/gamewin.cc:107:12:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
using std::srand;
data/exult-1.6/gamewin.cc:627:2:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	srand(timer);           // Use time to seed rand. generator.
data/exult-1.6/mapedit/shapelst.cc:900:12:  [3] (shell) CreateProcess:
  This causes a new process to execute and is difficult to use safely
  (CWE-78). Specify the application path in the first argument, NOT as part
  of the second, or embedded spaces could allow an attacker to force a
  different program to run.
	int ret = CreateProcess(NULL, const_cast<char *>(cmd.c_str()),
data/exult-1.6/mapedit/shapelst.cc:900:12:  [3] (shell) CreateProcess:
  This causes a new process to execute and is difficult to use safely
  (CWE-78). Specify the application path in the first argument, NOT as part
  of the second, or embedded spaces could allow an attacker to force a
  different program to run.
	int ret = CreateProcess(NULL, const_cast<char *>(cmd.c_str()),
data/exult-1.6/mapedit/studio.cc:546:19:  [3] (buffer) getopt:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
	while ((optchr = getopt(argc, argv, optstring)) != -1)
data/exult-1.6/mapedit/tools/smooth/plugin.c:51:10:  [3] (misc) LoadLibrary:
  Ensure that the full path to the library is specified, or current directory
  may be used (CWE-829, CWE-20). Use registry entry or GetWindowsDirectory to
  find library path, if you aren't already.
	a_hdl = LoadLibrary(plug_name);
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_randomize.c:90:2:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	srand(timer * rand());
data/exult-1.6/monsters.cc:247:13:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		{nearest, random, flee, nearest},       // noncombatants
data/exult-1.6/monsters.cc:249:13:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		{nearest, random, nearest, nearest},    // unpredictable
data/exult-1.6/msvc9/exconfig/exconfig.cpp:349:3:  [3] (shell) CreateProcess:
  This causes a new process to execute and is difficult to use safely
  (CWE-78). Specify the application path in the first argument, NOT as part
  of the second, or embedded spaces could allow an attacker to force a
  different program to run.
		CreateProcess(NULL, lpszValue, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL,
data/exult-1.6/msvc9/exconfig/exconfig.cpp:349:3:  [3] (shell) CreateProcess:
  This causes a new process to execute and is difficult to use safely
  (CWE-78). Specify the application path in the first argument, NOT as part
  of the second, or embedded spaces could allow an attacker to force a
  different program to run.
		CreateProcess(NULL, lpszValue, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL,
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:349:3:  [3] (shell) CreateProcess:
  This causes a new process to execute and is difficult to use safely
  (CWE-78). Specify the application path in the first argument, NOT as part
  of the second, or embedded spaces could allow an attacker to force a
  different program to run.
		CreateProcess(NULL, lpszValue, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL,
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:349:3:  [3] (shell) CreateProcess:
  This causes a new process to execute and is difficult to use safely
  (CWE-78). Specify the application path in the first argument, NOT as part
  of the second, or embedded spaces could allow an attacker to force a
  different program to run.
		CreateProcess(NULL, lpszValue, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL,
data/exult-1.6/shapes/fontgen.cc:304:39:  [3] (misc) LoadLibrary:
  Ensure that the full path to the library is specified, or current directory
  may be used (CWE-829, CWE-20). Use registry entry or GetWindowsDirectory to
  find library path, if you aren't already.
		                     GetProcAddress(LoadLibrary("GDI32"), "AddFontResourceExA");
data/exult-1.6/shapes/shapeinf/sfxinf.h:40:10:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	bool    random;         // sfx in range are to be randomly chosen.
data/exult-1.6/shapes/shapeinf/sfxinf.h:63:11:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		return !random;
data/exult-1.6/shapes/shapeinf/sfxinf.h:66:10:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		return random;
data/exult-1.6/shapes/shapeinf/sfxinf.h:69:7:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		if (random != f) {
data/exult-1.6/shapes/shapeinf/sfxinf.h:109:8:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
			if (random)
data/exult-1.6/shapes/shapewrite.cc:558:16:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	WriteInt(out, random, extra < 0);
data/exult-1.6/usecode/compiler/ucmain.cc:70:19:  [3] (buffer) getopt:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
	while ((optchr = getopt(argc, argv, optstring)) != -1)
data/exult-1.6/usecode/compiler/ucmain.cc:82:14:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
	char *env = getenv("UCC_INCLUDE");
data/exult-1.6/usecode/ucxt/src/ucdata.cc:295:9:  [3] (random) setstate:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		_file.setstate(_file.failbit);
data/exult-1.6/actions.cc:382:10:  [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.
		signed char frames[2];
data/exult-1.6/actions.cc:727:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	std::memcpy(frames, f, cnt);
data/exult-1.6/actorio.cc:406:11:  [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.
	unsigned char namebuf[17];
data/exult-1.6/actorio.cc:506:11:  [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.
	unsigned char buf4[4];      // Write coords., shape, frame.
data/exult-1.6/actorio.cc:694: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 namebuf[17];       // Write 16-byte name.
data/exult-1.6/actors.cc:88:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/actors.cc:4019: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 hpmsg[50];
data/exult-1.6/actors.cc:4020:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
		sprintf(hpmsg, "-%d(%d)", delta, oldhp - delta);
data/exult-1.6/actors.cc:5196:11:  [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.
	unsigned char buf[21];      // 13-byte entry - Exult extension.
data/exult-1.6/actors.cc:5228:2:  [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(frames, f, cnt);     // Copy in the list.
data/exult-1.6/audio/Audio.cc:61:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/audio/Audio.cc:456:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	std::memcpy(new_sound_data, sound_data, len);
data/exult-1.6/audio/Midi.cc:805: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 outputstr[255];
data/exult-1.6/audio/Midi.cc:831: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 outputstr[255];
data/exult-1.6/audio/Midi.cc:839: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 outputstr[255];
data/exult-1.6/audio/RawAudioSample.cc:72:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(samples, buffer+decomp->pos, count);
data/exult-1.6/audio/VocAudioSample.cc:321:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(samples, buffer+decomp->pos, num_samples);
data/exult-1.6/audio/VocAudioSample.cc:344: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 buffer[19];
data/exult-1.6/audio/WavAudioSample.cc:38: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 buf[4];
data/exult-1.6/audio/WavAudioSample.cc:115: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 buf[4];
data/exult-1.6/audio/midi_drivers/ALSAMidiDriver.cpp:57:21:  [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).
int ALSAMidiDriver::open() {
data/exult-1.6/audio/midi_drivers/ALSAMidiDriver.cpp:173:11:  [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.
	unsigned char buf[1024];
data/exult-1.6/audio/midi_drivers/ALSAMidiDriver.cpp:181:2:  [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(buf + 1, msg, length);
data/exult-1.6/audio/midi_drivers/ALSAMidiDriver.cpp:194:13:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		*client = atoi(arg);
data/exult-1.6/audio/midi_drivers/ALSAMidiDriver.cpp:195:11:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		*port = atoi(p + 1);
data/exult-1.6/audio/midi_drivers/ALSAMidiDriver.h:40:16:  [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).
	virtual int			open();
data/exult-1.6/audio/midi_drivers/CoreAudioMidiDriver.cpp:88:26:  [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).
int CoreAudioMidiDriver::open() {
data/exult-1.6/audio/midi_drivers/CoreAudioMidiDriver.cpp:226:2:  [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(buf + 1, msg, length);
data/exult-1.6/audio/midi_drivers/CoreAudioMidiDriver.h:50:22:  [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).
	virtual int         open();
data/exult-1.6/audio/midi_drivers/CoreMidiDriver.cpp:45:21:  [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).
int CoreMidiDriver::open() {
data/exult-1.6/audio/midi_drivers/CoreMidiDriver.cpp:75:13:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	deviceId = atoi(deviceIdStr.c_str());
data/exult-1.6/audio/midi_drivers/CoreMidiDriver.cpp:169:2:  [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(packet->data + 1, msg, length);
data/exult-1.6/audio/midi_drivers/CoreMidiDriver.h:49:16:  [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).
	virtual int			open();
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp:216:22:  [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).
int FMOplMidiDriver::open()
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp:950:12:  [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.
		unsigned char reserved[7];			// 40-46:  reserved
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.h:42:16:  [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).
	virtual int			open();
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.h:54:24:  [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.
	static const unsigned char midi_fm_instruments_table[128][11];
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.h:57:24:  [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.
	static const unsigned char adlib_opadd[9];
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.h:64:12:  [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.
		unsigned char ins[12];
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.h:75:12:  [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.
		unsigned char	insbank[128][12];
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.h:90:11:  [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.
	unsigned char adlib_data[256];
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.h:94:11:  [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.
	unsigned char	myinsbank[128][12];
data/exult-1.6/audio/midi_drivers/FileMidiDriver.cpp:60:12:  [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).
	int ret = open();
data/exult-1.6/audio/midi_drivers/FileMidiDriver.h:55:16:  [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).
	virtual int			open()=0;
data/exult-1.6/audio/midi_drivers/FluidSynthMidiDriver.cpp:67:27:  [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).
int FluidSynthMidiDriver::open() {
data/exult-1.6/audio/midi_drivers/FluidSynthMidiDriver.h:48: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).
	virtual int open();
data/exult-1.6/audio/midi_drivers/KMIDI.cc:51:9:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	return atoi(s.c_str());
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:515:13:  [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).
	int code = open();
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:618:12:  [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).
	int ret = open();
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1467:10:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
				std::memcpy(mt32_timbre_banks[2][start]->timbre,msg,246);
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1490:11:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
					std::memcpy(mt32_patch_banks[0][patch],msg,8);
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1522:11:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
					std::memcpy(mt32_rhythm_bank[temp],msg,4);
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1559:11:  [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.
	unsigned char sysex_buffer[512];
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1575:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy (sysex_buffer+sysex_data_start, data, len);
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1782: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 name[11] = {0};
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1783:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	std::memcpy (name,mt32_timbre_banks[bank][patch]->timbre,10);
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1815: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 name[11] = {0};
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.h:80:16:  [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).
	virtual int			open()=0;
data/exult-1.6/audio/midi_drivers/MT32EmuMidiDriver.cpp:66:13:  [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).
			if (file.open(get_system_path(basedir).c_str()))
data/exult-1.6/audio/midi_drivers/MT32EmuMidiDriver.cpp:72:12:  [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).
		if (file.open(get_system_path(basedir).c_str()))
data/exult-1.6/audio/midi_drivers/MT32EmuMidiDriver.cpp:78:11:  [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).
	if (file.open(get_system_path(basedir).c_str()))
data/exult-1.6/audio/midi_drivers/MT32EmuMidiDriver.cpp:94:24:  [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).
int MT32EmuMidiDriver::open() {
data/exult-1.6/audio/midi_drivers/MT32EmuMidiDriver.cpp:138:13:  [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).
	if (!mt32->open(*controlROMImage, *pcmROMImage)) {
data/exult-1.6/audio/midi_drivers/MT32EmuMidiDriver.h:45:16:  [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).
	virtual int			open();
data/exult-1.6/audio/midi_drivers/TimidityMidiDriver.cpp:41:25:  [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).
int TimidityMidiDriver::open()
data/exult-1.6/audio/midi_drivers/TimidityMidiDriver.h:43:16:  [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).
	virtual int			open();
data/exult-1.6/audio/midi_drivers/UnixSeqMidiDriver.cpp:46:24:  [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).
int UnixSeqMidiDriver::open()
data/exult-1.6/audio/midi_drivers/UnixSeqMidiDriver.cpp:54:13:  [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).
	device = ::open(devname.c_str(), O_RDWR, 0);
data/exult-1.6/audio/midi_drivers/UnixSeqMidiDriver.cpp:71:11:  [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.
	unsigned char buf[256];
data/exult-1.6/audio/midi_drivers/UnixSeqMidiDriver.cpp:123:11:  [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.
	unsigned char buf [2048];
data/exult-1.6/audio/midi_drivers/UnixSeqMidiDriver.h:40:16:  [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).
	virtual int			open();
data/exult-1.6/audio/midi_drivers/WindowsMidiDriver.cpp:55: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 buf[512];
data/exult-1.6/audio/midi_drivers/WindowsMidiDriver.cpp:63:24:  [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).
int WindowsMidiDriver::open()
data/exult-1.6/audio/midi_drivers/WindowsMidiDriver.cpp:209:2:  [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(_streamBuffer+1, msg, length);
data/exult-1.6/audio/midi_drivers/WindowsMidiDriver.h:65:16:  [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).
	virtual int			open();
data/exult-1.6/audio/midi_drivers/XMidiEvent.h:76:11:  [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.
	unsigned char	data[2];
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:37:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
using std::atoi;
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:39:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:442: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 reserveSettings[9];			// PARTIAL RESERVE (PART 1) 0-32
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:443: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 chanAssign[9];					// MIDI CHANNEL (PART1) 0-16 (1-16,OFF)
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:447:14:  [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.
static const char system_init_reverb[3] = { 0,3,2 };				// reverb mode = 0, time = 3, level = 2
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:448:14:  [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.
static const char system_part_chans[9] =  { 1,2,3,4,5,6,7,8,9 };	// default (0-based) chans for each part
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:449:14:  [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.
static const char system_part_rsv[9] = { 3,4,3,4,3,4,3,4,4 };		// # of reserved AIL partials/channel
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:832:24:  [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.
	static const unsigned char tempo_buf[5] = { 0x51, 0x03, 0x07, 0xA1, 0x20 };
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1108:17:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	if (data) std::memcpy (sysex_buffer+sysex_data_start, data, len);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1225: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			buf[32];
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1264:25:  [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.
		static const unsigned char tempo_buf[5] = { 0x51, 0x03, 0x07, 0xA1, 0x20 };
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1290: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		buf[32];
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1359: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		buf[32];
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1375:17:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	reverb_value = atoi(s.c_str());
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1386:17:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	chorus_value = atoi(s.c_str());
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1724:24:  [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.
	static const unsigned char tempo_buf[5] = { 0x51, 0x03, 0x07, 0xA1, 0x20 };
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1783:24:  [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.
	static const unsigned char tempo_buf[5] = { 0x51, 0x03, 0x07, 0xA1, 0x20 };
data/exult-1.6/audio/midi_drivers/XMidiFile.h:59:15:  [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 static char	mt32asgm[128];
data/exult-1.6/audio/midi_drivers/XMidiFile.h:60:15:  [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 static char	mt32asgs[256];
data/exult-1.6/audio/midi_drivers/XMidiFile.h:61:15:  [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 static char	gmasmt32[128];
data/exult-1.6/audio/midi_drivers/forked_player.cc:53: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).
int forked_player::open()
data/exult-1.6/audio/midi_drivers/forked_player.cc:115:3:  [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(name, "/tmp/u7midi_XXXXXX");
data/exult-1.6/audio/midi_drivers/forked_player.cc:116:11:  [2] (tmpfile) mkstemp:
  Potential for temporary file vulnerability in some circumstances. Some
  older Unix-like systems create temp files with permission to write by all
  by default, so be sure to set the umask to override this. Also, some older
  Unix systems might fail to use O_EXCL when opening the file, so make sure
  that O_EXCL is used by the library (CWE-377).
		::close(mkstemp(name));
data/exult-1.6/audio/midi_drivers/forked_player.h:44:15:  [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).
	virtual int		open();
data/exult-1.6/audio/midi_drivers/mixer_midiout.cc:57: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).
int Mixer_MidiOut::open()
data/exult-1.6/audio/midi_drivers/mixer_midiout.h:38:16:  [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).
	virtual int			open();
data/exult-1.6/audio/midi_drivers/mt32emu/BReverbModel.cpp:337: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).
void BReverbModel::open() {
data/exult-1.6/audio/midi_drivers/mt32emu/BReverbModel.h:110:7:  [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).
	void open();
data/exult-1.6/audio/midi_drivers/mt32emu/File.cpp:32:2:  [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(sha1Digest, useSHA1Digest, sizeof(SHA1Digest) - 1);
data/exult-1.6/audio/midi_drivers/mt32emu/File.cpp:52:11:  [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.
	unsigned char fileDigest[20];
data/exult-1.6/audio/midi_drivers/mt32emu/File.h:31:10:  [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.
	typedef char SHA1Digest[41];
data/exult-1.6/audio/midi_drivers/mt32emu/FileStream.cpp:72:18:  [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).
bool FileStream::open(const char *filename) {
data/exult-1.6/audio/midi_drivers/mt32emu/FileStream.cpp:74:7:  [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).
	ifsp.open(filename, ios_base::in | ios_base::binary);
data/exult-1.6/audio/midi_drivers/mt32emu/FileStream.h:35:22:  [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).
	MT32EMU_EXPORT bool open(const char *filename);
data/exult-1.6/audio/midi_drivers/mt32emu/MidiStreamParser.cpp:140:24:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		if (preserveContent) memcpy(streamBuffer, oldStreamBuffer, streamBufferSize);
data/exult-1.6/audio/midi_drivers/mt32emu/MidiStreamParser.cpp:193: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 s[128];
data/exult-1.6/audio/midi_drivers/mt32emu/MidiStreamParser.cpp:194:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(s, "parseShortMessageDataBytes: Invalid short message: status %02x, expected length %i, actual %i -> ignored", *streamBuffer, shortMessageLength, streamBufferSize);
data/exult-1.6/audio/midi_drivers/mt32emu/MidiStreamParser.cpp:244:3:  [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(streamBuffer, stream, sysexLength);
data/exult-1.6/audio/midi_drivers/mt32emu/Part.cpp:42:2:  [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(name, "Rhythm");
data/exult-1.6/audio/midi_drivers/mt32emu/Part.cpp:57:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
		sprintf(name, "Part %d", partNum + 1);
data/exult-1.6/audio/midi_drivers/mt32emu/Part.cpp:168:2:  [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(currentInstr, timbreTemp->common.name, 10);
data/exult-1.6/audio/midi_drivers/mt32emu/Part.cpp:187:3:  [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(currentInstr, timbreTemp->common.name, 10);
data/exult-1.6/audio/midi_drivers/mt32emu/Part.cpp:394:2:  [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(currentInstr, timbre->common.name, 10);
data/exult-1.6/audio/midi_drivers/mt32emu/Part.h:70: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 name[8]; // "Part 1".."Part 8", "Rhythm"
data/exult-1.6/audio/midi_drivers/mt32emu/Part.h:71: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 currentInstr[11];
data/exult-1.6/audio/midi_drivers/mt32emu/Structures.h:49: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 name[10];
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:381:2:  [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(controlROMData, fileData, CONTROL_ROM_SIZE);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:513: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).
		reverbModels[i]->open();
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:522:3:  [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(&newSoundGroupNames[i][0], table[i].name, sizeof(table[i].name));
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:526:13:  [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).
bool Synth::open(const ROMImage &controlROMImage, const ROMImage &pcmROMImage, AnalogOutputMode analogOutputMode) {
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:527: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).
	return open(controlROMImage, pcmROMImage, DEFAULT_MAX_PARTIALS, analogOutputMode);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:530:13:  [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).
bool Synth::open(const ROMImage &controlROMImage, const ROMImage &pcmROMImage, unsigned int usePartialCount, AnalogOutputMode analogOutputMode) {
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:619:2:  [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(mt32ram.rhythmTemp, &controlROMData[controlROMMap->rhythmSettings], controlROMMap->rhythmSettingsCount * 4);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:644:2:  [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(mt32ram.system.reserveSettings, &controlROMData[controlROMMap->reserveSettings], 9); // Confirmed
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1185:2:  [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(&paddedTimbreMaxTable[0], &controlROMData[controlROMMap->timbreMaxTable], sizeof(TimbreParam::CommonParam) + sizeof(TimbreParam::PartialParam)); // commonParam and one partialParam
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1188:3:  [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(&paddedTimbreMaxTable[pos], &controlROMData[controlROMMap->timbreMaxTable + sizeof(TimbreParam::CommonParam)], sizeof(TimbreParam::PartialParam));
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1276: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 timbreName[11];
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1277:4:  [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(timbreName, mt32ram.timbres[absTimbreNum].timbre.common.name, 10);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1302: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 timbreName[11];
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1304: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(timbreName, mt32ram.timbres[128 + timbreNum].timbre.common.name, 10);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1307:5:  [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(timbreName, "[None]");
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1320: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 instrumentName[11];
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1321:4:  [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(instrumentName, mt32ram.timbreTemp[i].common.name, 10);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1337: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 instrumentName[11];
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1338:4:  [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(instrumentName, mt32ram.timbres[patchAbsTimbreNum].timbre.common.name, 10);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1353: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 instrumentName[11];
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1354:4:  [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(instrumentName, timbre->common.name, 10);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1476: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 buf[SYSEX_BUFFER_SIZE];
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1477:3:  [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(&buf, &data[0], len);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1528: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).
			reverbModel->open();
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1630:2:  [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(dstSysexData, useSysexData, sysexLength);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:2072:2:  [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(dst, src + off, len);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.h:157:8:  [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 (*soundGroupNames)[9]; // Array
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.h:289:22:  [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).
	MT32EMU_EXPORT bool open(const ROMImage &controlROMImage, const ROMImage &pcmROMImage, Bit32u usePartialCount = DEFAULT_MAX_PARTIALS, AnalogOutputMode analogOutputMode = AnalogOutputMode_COARSE);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.h:292:22:  [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).
	MT32EMU_EXPORT bool open(const ROMImage &controlROMImage, const ROMImage &pcmROMImage, AnalogOutputMode analogOutputMode);
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:56:8:  [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.
static char def_instr_name[256]="";
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:67: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 tmp[1024];
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:143:10:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			int i=atoi(w[1]);
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:169:10:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			int i=atoi(w[1]);
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:193:10:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			int i=atoi(w[0]);
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:231:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					int k=atoi(cp);
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:244:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					int k=atoi(cp);
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:265:11:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
						k=((atoi(cp)+100) * 100) / 157;
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:380:11:  [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).
	if (ctl->open(0, 0)) {
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:476:11:  [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).
	if (ctl->open(0, 0)) {
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:505:1:  [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 timidity_error[1024] = "";
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:55:1:  [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 current_filename[1024];
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:72:5:  [2] (misc) fopen:
  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).
	fp=fopen(name, OPEN_MODE); /* First just check that the file exists */
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:82: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 tmp[1024], tmp2[1024], *cp, *cp2;
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:213: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 tmp[1024];
data/exult-1.6/audio/midi_drivers/timidity/timidity_controls.h:83:8:  [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).
	int (*open)(int using_stdin, int using_stdout);
data/exult-1.6/audio/midi_drivers/timidity/timidity_filter.cpp:205:2:  [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(temp,sp->data,sp->data_length);
data/exult-1.6/audio/midi_drivers/timidity/timidity_instrum.cpp:210: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 path[1024];
data/exult-1.6/audio/midi_drivers/timidity/timidity_readmidi.cpp:323: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 tmp[4];
data/exult-1.6/audio/midi_drivers/timidity/timidity_readmidi.cpp:555: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 tmp[4];
data/exult-1.6/audio/midi_drivers/timidity/timidity_resample.cpp:694:15:  [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.
	static const char note_name[12][3] =
data/exult-1.6/audio/soundtest.cc:49: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 buf[256];
data/exult-1.6/audio/u7audiotool.cc:68: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	buf[64];
data/exult-1.6/audio/u7audiotool.cc:69:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(buf,"/tmp/u7patch/patch%u",i);
data/exult-1.6/audio/u7audiotool.cc:70:13:  [2] (misc) fopen:
  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).
			FILE	*fp=fopen(buf,"wb");
data/exult-1.6/audio/u7audiotool.cc:86: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	buf[64];
data/exult-1.6/audio/u7audiotool.cc:87:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(buf,"/tmp/u7mid/midi%u",i);
data/exult-1.6/audio/u7audiotool.cc:88:13:  [2] (misc) fopen:
  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).
			FILE	*fp=fopen(buf,"wb");
data/exult-1.6/browser.cc:86: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 buf[255];
data/exult-1.6/browser.cc:106: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 xfrsc[256];
data/exult-1.6/cheat.cc:511:12:  [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.
		unsigned char msg[2];
data/exult-1.6/cheat.cc:869: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 msg[80];
data/exult-1.6/cheat.cc:870:2:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
	sprintf(msg, "To map #%02x", newmap);
data/exult-1.6/cheat_screen.cc:219: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 buf[512];
data/exult-1.6/cheat_screen.cc:340: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 buf[50];
data/exult-1.6/cheat_screen.cc:524: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 input[5] = { 0, 0, 0, 0, 0 };
data/exult-1.6/cheat_screen.cc:556: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    buf[512];
data/exult-1.6/cheat_screen.cc:600: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    buf[512];
data/exult-1.6/cheat_screen.cc:662:17:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int npc = std::atoi(input);
data/exult-1.6/cheat_screen.cc:825: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    buf[512];
data/exult-1.6/cheat_screen.cc:853: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 input[5] = { 0, 0, 0, 0, 0 };
data/exult-1.6/cheat_screen.cc:876:19:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			int val = std::atoi(input);
data/exult-1.6/cheat_screen.cc:927: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 input[17];
data/exult-1.6/cheat_screen.cc:931: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    buf[512];
data/exult-1.6/cheat_screen.cc:979:14:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				i = std::atoi(input);
data/exult-1.6/cheat_screen.cc:1060: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 input[17];
data/exult-1.6/cheat_screen.cc:1101: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    buf[512];
data/exult-1.6/cheat_screen.cc:1216:15:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int i = std::atoi(input);
data/exult-1.6/cheat_screen.cc:1407: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 input[17];
data/exult-1.6/cheat_screen.cc:1442: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    buf[512];
data/exult-1.6/cheat_screen.cc:1591:15:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int i = std::atoi(input);
data/exult-1.6/cheat_screen.cc:1968: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 input[17];
data/exult-1.6/cheat_screen.cc:2008: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    buf[512];
data/exult-1.6/cheat_screen.cc:2082:15:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int i = std::atoi(input);
data/exult-1.6/cheat_screen.cc:2241: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 input[17];
data/exult-1.6/cheat_screen.cc:2276: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    buf[512];
data/exult-1.6/cheat_screen.cc:2320:15:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int i = std::atoi(input);
data/exult-1.6/cheat_screen.cc:2426: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 input[17];
data/exult-1.6/cheat_screen.cc:2430: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    buf[512];
data/exult-1.6/cheat_screen.cc:2481:14:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				i = std::atoi(input);
data/exult-1.6/cheat_screen.cc:2569: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 input[5];
data/exult-1.6/cheat_screen.cc:2605: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    buf[512];
data/exult-1.6/cheat_screen.cc:2659:15:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int i = std::atoi(input);
data/exult-1.6/cheat_screen.cc:2660:17:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int npc = std::atoi(input);
data/exult-1.6/cheat_screen.h:30:15:  [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.
	static const char   *schedules[33];
data/exult-1.6/cheat_screen.h:31:15:  [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.
	static const char   *flag_names[64];
data/exult-1.6/cheat_screen.h:32:15:  [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.
	static const char   *alignments[4];
data/exult-1.6/combat.cc:888:9:  [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.
	signed char frames[12];     // Get frames to show.
data/exult-1.6/conf/Configuration.cc:39:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
using std::atoi;
data/exult-1.6/conf/Configuration.cc:82:9:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		ret = atoi(sub->value().c_str());
data/exult-1.6/conf/Configuration.cc:119: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    buf[32];
data/exult-1.6/exult.cc:2205:13:  [2] (misc) fopen:
  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).
		FILE *f = fopen(fn, "rb");
data/exult-1.6/exult.cc:2230: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 text[256];
data/exult-1.6/exult.cc:2297: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 fn[15];
data/exult-1.6/exulticon.h:14:17:  [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.
static unsigned char header_data_cmap[256][3] = {
data/exult-1.6/files/Flex.cc:138: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 titlebuf[0x50];        // Use savename for title.
data/exult-1.6/files/Flex.h:48: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    title[80];
data/exult-1.6/files/IFF.cc:79: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 type[4];
data/exult-1.6/files/IFF.cc:126: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 ckid[4];
data/exult-1.6/files/IFF.h:40: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    form_magic[4];
data/exult-1.6/files/IFF.h:42: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[4];
data/exult-1.6/files/IFF.h:47: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    type[4];
data/exult-1.6/files/IFF.h:52: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    name[8];
data/exult-1.6/files/databuf.h:212:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(b, buf_ptr, len);
data/exult-1.6/files/databuf.h:419:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(buf_ptr, b, len);
data/exult-1.6/files/listfiles.cc:61:2:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
	MultiByteToWideChar(CP_ACP, 0, name, -1, lpszT2, nLen);
data/exult-1.6/files/snprintf.cc:362:30:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		if (nn >= breakeven_point) memcpy((d), (s), nn); \
data/exult-1.6/files/snprintf.cc:583: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 tmp[32];/* temporary buffer for simple numeric->string conversion */
data/exult-1.6/files/snprintf.cc:907:6:  [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 f[5];
data/exult-1.6/files/utils.cc:298:7:  [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).
			in.open(name.c_str(), mode);        // Try to open
data/exult-1.6/files/utils.cc:342:7:  [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).
		out.open(name.c_str(), mode);       // Try to open
data/exult-1.6/files/utils.cc:369:12:  [2] (misc) fopen:
  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).
		f = std::fopen(name.c_str(), mode); // Try to open
data/exult-1.6/files/utils.cc:408:2:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
	MultiByteToWideChar(CP_ACP, 0, n, -1, lpszT, nLen);
data/exult-1.6/files/utils.cc:495:2:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
	MultiByteToWideChar(CP_ACP, 0, n, -1, lpszT, nLen);
data/exult-1.6/files/utils.cc:602:12:  [2] (misc) fopen:
  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).
		stdout = fopen(stdoutfile, "w");
data/exult-1.6/files/utils.cc:604:11:  [2] (misc) fopen:
  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).
		newfp = fopen(stdoutfile, "w");
data/exult-1.6/files/utils.cc:617:12:  [2] (misc) fopen:
  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).
		stderr = fopen(stderrfile, "w");
data/exult-1.6/files/utils.cc:619:11:  [2] (misc) fopen:
  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).
		newfp = fopen(stderrfile, "w");
data/exult-1.6/files/utils.cc:677:12:  [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.
		unsigned char buf[MAXPATHLEN];
data/exult-1.6/files/utils.cc:713:8:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
		std::strcat(dpath, "data");
data/exult-1.6/files/utils.cc:896:3:  [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(to, from, len);  // Copy dir.
data/exult-1.6/files/utils.cc:917: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 fname[128];
data/exult-1.6/files/zip/unzip.cc:324:8:  [2] (misc) fopen:
  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).
	fin = fopen(path, "rb");
data/exult-1.6/files/zip/unzip.cc:692: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 szCurrentFileName[UNZ_MAXFILENAMEINZIP + 1];
data/exult-1.6/files/zip/zip.cc:89:11:  [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.
	unsigned char data[SIZEDATA_INDATABLOCK];
data/exult-1.6/files/zip/zip.cc:227:11:  [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.
	unsigned char buf[4];
data/exult-1.6/files/zip/zip.cc:276:20:  [2] (misc) fopen:
  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).
		ziinit.filezip = fopen(pathname, "r+b");
data/exult-1.6/files/zip/zip.cc:280:20:  [2] (misc) fopen:
  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).
		ziinit.filezip = fopen(pathname, "wb");
data/exult-1.6/flic/playfli.cc:144:14:  [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.
				unsigned char colors[3 * 256];
data/exult-1.6/game.cc:65:8:  [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.
static char av_name[17] = "";
data/exult-1.6/game.cc:117: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 buf[256];
data/exult-1.6/game.cc:213: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 buf[250];
data/exult-1.6/game.cc:299: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 npc_name[16];
data/exult-1.6/gamedat.cc:114: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 fname[50];     // Set up name.
data/exult-1.6/gamedat.cc:249: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 fname[50];         // Set up name.
data/exult-1.6/gamedat.cc:304: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 namebuf[13];       // First write 13-byte name.
data/exult-1.6/gamedat.cc:330: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 namebuf[13];
data/exult-1.6/gamedat.cc:353: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 iname[128];
data/exult-1.6/gamedat.cc:414: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 dname[128];
data/exult-1.6/gamedat.cc:447: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 fname[50];         // Set up name.
data/exult-1.6/gamedat.cc:464: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 fname[50];     // Set up name.
data/exult-1.6/gamedat.cc:470: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 buf[0x50];     // It's at start of file.
data/exult-1.6/gamedat.cc:544: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 name[18];
data/exult-1.6/gamedat.cc:653: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 fname[50];         // Set up name.
data/exult-1.6/gamedat.cc:669: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 buf[0x50];
data/exult-1.6/gamedat.cc:697: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 fname[50];     // Set up name.
data/exult-1.6/gamedat.cc:775: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 namebuf[0x50];
data/exult-1.6/gamedat.cc:827: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 oname[50];     // Set up name.
data/exult-1.6/gamedat.cc:829: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 size_buffer[4];
data/exult-1.6/gamedat.cc:942: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 oname[50];     // Set up name.
data/exult-1.6/gamedat.cc:1066: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 oname[8];      // Set up name.
data/exult-1.6/gamedat.cc:1068:3:  [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(oname, "GAMEDAT");
data/exult-1.6/gamedat.cc:1071:3:  [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(oname, "map");
data/exult-1.6/gamedat.cc:1139: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 iname[128];
data/exult-1.6/gamedat.cc:1153: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 title[0x50];
data/exult-1.6/gamemap.cc:69:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/gamemap.cc:109:11:  [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.
	unsigned char buf[ntiles * 3];
data/exult-1.6/gamemap.cc:167:13:  [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.
			unsigned char buf[16 * 16 * 3];
data/exult-1.6/gamemap.cc:174: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 v2buf[V2_CHUNK_HDR_SIZE];  // Check for V2.
data/exult-1.6/gamemap.cc:199: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 fname[128];
data/exult-1.6/gamemap.cc:219:12:  [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.
		unsigned char buf[16 * 16 * 2];
data/exult-1.6/gamemap.cc:448:13:  [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.
			unsigned char data[ntiles * 3];
data/exult-1.6/gamemap.cc:473: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 fname[128];
data/exult-1.6/gamemap.cc:513: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 fname[128];        // Set up name.
data/exult-1.6/gamemap.cc:548: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 fname[128];        // Set up name.
data/exult-1.6/gamemap.cc:724: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 fname[128];        // Set up name.
data/exult-1.6/gamemap.cc:743: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 fname[128];        // Set up name.
data/exult-1.6/gamemap.cc:788: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 fname[128];        // Set up name.
data/exult-1.6/gamemap.cc:906:11:  [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.
	unsigned char entbuf[20];
data/exult-1.6/gamemap.cc:1078:13:  [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.
			unsigned char circles[9];
data/exult-1.6/gamemap.cc:1079:4:  [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(&circles[0], &entry[4], 5);
data/exult-1.6/gamemap.cc:1081:4:  [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(&circles[5], &entry[10], 4);
data/exult-1.6/gamemap.cc:1155:19:  [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.
		static unsigned char circles[9] = {0};
data/exult-1.6/gamemap.cc:1334:11:  [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.
	unsigned char buf[ntiles * 3];  // Set up buffer with shape #'s.
data/exult-1.6/gamemap.cc:1488: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 msg[80];
data/exult-1.6/gamemap.cc:1645: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 msg[80];
data/exult-1.6/gamemap.h:72: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 *schunk_cache[144];
data/exult-1.6/gamemgr/bggame.cc:683:3:  [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(data, pp, len);
data/exult-1.6/gamemgr/bggame.cc:1534: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    *fli_b[3];
data/exult-1.6/gamemgr/bggame.cc:1999: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 npc_name[max_name_len + 1];
data/exult-1.6/gamemgr/bggame.cc:2000: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 disp_name[max_name_len + 2];
data/exult-1.6/gamemgr/modmgr.cc:297: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 fname[50];     // Set up name.
data/exult-1.6/gamemgr/modmgr.cc:671: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 path[50];
data/exult-1.6/gamemgr/modmgr.cc:686: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 staticpath[50];
data/exult-1.6/gamemgr/sigame.cc:466:9:  [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 *all_we[2] = { get_text_msg(all_we0), get_text_msg(all_we0 + 1) };
data/exult-1.6/gamemgr/sigame.cc:491:9:  [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 *and_a[2] = { get_text_msg(and_a0), get_text_msg(and_a0 + 1) };
data/exult-1.6/gamemgr/sigame.cc:1309: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 npc_name[max_len + 1];
data/exult-1.6/gamemgr/sigame.cc:1310: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 disp_name[max_len + 2];
data/exult-1.6/gamerend.cc:102: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 text[40];          // Show chunk #.
data/exult-1.6/gamewin.cc:350:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(palette, cpal, 768);
data/exult-1.6/gamewin.cc:577: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 buf[512];
data/exult-1.6/gamewin.cc:877: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 msg[80];
data/exult-1.6/gamewin.cc:950: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 msg[80];
data/exult-1.6/gamewin.cc:1016: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 msg[80];
data/exult-1.6/gamewin.cc:1047:12:  [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.
		unsigned char data[50];
data/exult-1.6/gamewin.cc:1356: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 gamedat_identity[256];
data/exult-1.6/gamewin.cc:2185: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 str[64];
data/exult-1.6/gamewin.cc:2200: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 buf[128];
data/exult-1.6/gamewin.cc:2210: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 str[20];
data/exult-1.6/gamewin.cc:2857: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 fname[128];
data/exult-1.6/gamewin.h:140: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 *save_names[10];       // Names of saved games.
data/exult-1.6/gumps/Actor_gump.cc:241: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 text[20];
data/exult-1.6/gumps/GameplayOptions_gump.cc:60: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 buf[100];
data/exult-1.6/gumps/GameplayOptions_gump.cc:61:2:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
	sprintf(buf, "%i fps", fr);
data/exult-1.6/gumps/GameplayOptions_gump.cc:65:14:  [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.
static const char *pathfind_texts[3] = {"no", "single", "double"};
data/exult-1.6/gumps/Gump_manager.cc:660: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 buf[20];
data/exult-1.6/gumps/Newfile_gump.cc:45:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
using std::atoi;
data/exult-1.6/gumps/Newfile_gump.cc:473: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    info[320];
data/exult-1.6/gumps/Newfile_gump.cc:512: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    info[64] = "File: ";
data/exult-1.6/gumps/Newfile_gump.cc:635:3:  [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(newname, "Quick Save");
data/exult-1.6/gumps/Newfile_gump.cc:900: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    text[MAX_SAVEGAME_NAME_LEN];
data/exult-1.6/gumps/Newfile_gump.cc:983: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    mask[256];
data/exult-1.6/gumps/Newfile_gump.cc:1080:8:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	num = atoi(filename + i + 1);
data/exult-1.6/gumps/Newfile_gump.h:51: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    reserved1[48];  // 64
data/exult-1.6/gumps/Newfile_gump.h:55: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        name[18];   // 18
data/exult-1.6/gumps/Newfile_gump.h:139:15:  [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.
	static const char *months[12];  // Names of the months
data/exult-1.6/gumps/Newfile_gump.h:168: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    newname[MAX_SAVEGAME_NAME_LEN]; // The new name for the game
data/exult-1.6/gumps/Notebook_gump.cc:302: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 buf[60];
data/exult-1.6/gumps/Paperdoll_gump.cc:491: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 text[20];
data/exult-1.6/gumps/Spellbook_gump.cc:453: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 text[8];
data/exult-1.6/gumps/Spellbook_gump.cc:458:11:  [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.
					std::strcpy(text, "remove");
data/exult-1.6/gumps/Spellbook_gump.cc:460:11:  [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.
					std::strcpy(text, "add");
data/exult-1.6/gumps/Spellbook_gump.cc:467:12:  [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.
						std::strcpy(text, "999");
data/exult-1.6/gumps/Stats_gump.cc:91: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 buf[20];
data/exult-1.6/gumps/VideoOptions_gump.cc:63: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 buf[100];
data/exult-1.6/gumps/VideoOptions_gump.cc:64:2:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
	sprintf(buf, "%ix%i", w, h);
data/exult-1.6/gumps/VideoOptions_gump.cc:261: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 buf[10];
data/exult-1.6/imagewin/ibuf8.cc:235:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(to, from, srcw);
data/exult-1.6/imagewin/ibuf8.cc:257:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	std::memcpy(to, from, srcw);
data/exult-1.6/imagewin/imagebuf.h:40:11:  [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.
	unsigned char colors[256];  // For transforming 8-bit colors.
data/exult-1.6/imagewin/imagewin.cc:1340: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 factor_str[16];
data/exult-1.6/imagewin/imagewin.cc:1360: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 factor_str[16];
data/exult-1.6/imagewin/iwin8.h:39:11:  [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.
	unsigned char colors[768];  // Palette.
data/exult-1.6/keys.cc:39:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
using std::atoi;
data/exult-1.6/keys.cc:573: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 returned_key[200];
data/exult-1.6/keys.cc:575:3:  [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(returned_key, "Error: No key assigned");
data/exult-1.6/keys.cc:585:5:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
				strcat(returned_key, " or ");
data/exult-1.6/keys.cc:590:2:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	strcat(returned_key, " - when pressed in game will create the last shape viewed in shapes.vga.");
data/exult-1.6/keys.cc:730:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			int p = atoi(t.c_str());
data/exult-1.6/keys.cc:748:11:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		int p = atoi(t.c_str());
data/exult-1.6/keys.cc:806: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 temp[1024]; // 1024 should be long enough
data/exult-1.6/mapedit/chunklst.cc:92:11:  [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.
	unsigned char buf[Exult_server::maxlength];
data/exult-1.6/mapedit/chunklst.cc:116: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 buf[150];          // Show new selection.
data/exult-1.6/mapedit/chunklst.cc:185:11:  [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.
	unsigned char buf[Exult_server::maxlength];
data/exult-1.6/mapedit/chunklst.cc:259:2:  [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(chunk, data, datalen);   // Copy it in.
data/exult-1.6/mapedit/chunklst.cc:768: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 v2buf[V2_CHUNK_HDR_SIZE];  // Check for V2 chunks.
data/exult-1.6/mapedit/chunklst.cc:940: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 buf[150];          // Show new selection.
data/exult-1.6/mapedit/chunklst.cc:960:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/chunklst.cc:1004:13:  [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.
			unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/chunklst.cc:1030:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/chunklst.cc:1070:4:  [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(data, chunklist[tnum], chunksz);
data/exult-1.6/mapedit/chunklst.cc:1115:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/combo.cc:785: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 buf[150];          // Show new selection.
data/exult-1.6/mapedit/combo.cc:812: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 buf[150];          // Show new selection.
data/exult-1.6/mapedit/compile.cc:129:8:  [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 *argv[8];        // Set up args.
data/exult-1.6/mapedit/contedit.cc:89:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/execbox.cc:104: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 buf[1024];
data/exult-1.6/mapedit/locator.cc:373:11:  [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.
	unsigned char data[50];
data/exult-1.6/mapedit/locator.cc:391:11:  [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.
	unsigned char data[50];
data/exult-1.6/mapedit/maps.cc:72:11:  [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.
	unsigned char data[50];
data/exult-1.6/mapedit/maps.cc:122: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 srcname[128], destname[128];
data/exult-1.6/mapedit/maps.cc:141: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 fname[128], sname[128];
data/exult-1.6/mapedit/maps.cc:158: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 pname[128], sname[128];
data/exult-1.6/mapedit/maps.cc:167: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 tname[128];
data/exult-1.6/mapedit/maps.cc:170:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(fname + strlen(fname), "%02x", schunk);
data/exult-1.6/mapedit/maps.cc:172:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(tname + strlen(tname), "%02x", schunk);
data/exult-1.6/mapedit/maps.cc:219: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 name[40];
data/exult-1.6/mapedit/maps.cc:220:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
		sprintf(name, "Map #%02x", num);
data/exult-1.6/mapedit/npcedit.cc:98:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/npcedit.cc:210:14:  [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.
static const char *sched_names[32] = {
data/exult-1.6/mapedit/npcedit.cc:393:9:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	pnum = atoi(name + 9);
data/exult-1.6/mapedit/npcedit.cc:430:9:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	fnum = atoi(name + 9 + 3);
data/exult-1.6/mapedit/npcedit.cc:444:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/npcedit.cc:791:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int num = atoi(numptr);
data/exult-1.6/mapedit/npcedit.cc:828: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 lname[20];         // Set up label name.
data/exult-1.6/mapedit/npcedit.cc:829:2:  [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(lname, "npc_sched");
data/exult-1.6/mapedit/npclst.cc:495:11:  [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.
	unsigned char buf[Exult_server::maxlength], *ptr;
data/exult-1.6/mapedit/npclst.cc:808:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/npclst.cc:977: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 buf[150];
data/exult-1.6/mapedit/paledit.cc:115: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 buf[150];          // Show new selection.
data/exult-1.6/mapedit/paledit.cc:270: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 buf[150];          // Show new selection.
data/exult-1.6/mapedit/paledit.cc:934: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 buf[256];
data/exult-1.6/mapedit/shapefile.cc:127:11:  [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.
	unsigned char buf[Exult_server::maxlength];
data/exult-1.6/mapedit/shapefile.cc:238:11:  [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.
	unsigned char buf[Exult_server::maxlength];
data/exult-1.6/mapedit/shapefile.cc:276:11:  [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.
	unsigned char buf[Exult_server::maxlength];
data/exult-1.6/mapedit/shapegroup.cc:402:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int row = atoi(str);
data/exult-1.6/mapedit/shapelst.cc:152:11:  [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.
	unsigned char buf[Exult_server::maxlength];
data/exult-1.6/mapedit/shapelst.cc:727:11:  [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.
	unsigned char pal[3 * 256]; // Set up palette.
data/exult-1.6/mapedit/shapelst.cc:782: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 buf[250];
data/exult-1.6/mapedit/shapelst.cc:875: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 currdir[MAX_PATH];
data/exult-1.6/mapedit/shapelst.cc:1124:12:  [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.
		unsigned char buf[c_num_tile_bytes];    // Move tile to buffer.
data/exult-1.6/mapedit/shapelst.cc:1128:4:  [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(ptr, src, c_tilesize);
data/exult-1.6/mapedit/shapelst.cc:1151:11:  [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.
	unsigned char pal[3 * 256]; // Convert to 0-255 RGB's.
data/exult-1.6/mapedit/shapelst.cc:1216:11:  [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.
	unsigned char pal[3 * 256]; // Get current palette.
data/exult-1.6/mapedit/shapelst.cc:1287:11:  [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.
	unsigned char pal[3 * 256]; // Get current palette.
data/exult-1.6/mapedit/shapelst.cc:2214:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/shapelst.cc:2448: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 buf[150];
data/exult-1.6/mapedit/shapetest.cc:82:14:  [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.
	names = new char *[num_names];
data/exult-1.6/mapedit/studio.cc:97:14:  [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.
static const char *mode_names[5] = {"move1", "paint1", "paint_with_chunks1",
data/exult-1.6/mapedit/studio.cc:590: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 path[256];         // Set up paths.
data/exult-1.6/mapedit/studio.cc:597:2:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	strcat(path, "/exult_studio.glade");
data/exult-1.6/mapedit/studio.cc:1521:12:  [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.
		unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/studio.cc:1570:12:  [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.
		unsigned char buf[Exult_server::maxlength];
data/exult-1.6/mapedit/studio.cc:1599:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/studio.cc:1612:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/studio.cc:1625:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/studio.cc:1638:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/studio.cc:1651:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/studio.cc:1673:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/studio.cc:1774:12:  [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.
		unsigned char pixels[w * h]; // Create an 8x8 shape.
data/exult-1.6/mapedit/studio.cc:1968:10:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		return atoi(txt);
data/exult-1.6/mapedit/studio.cc:2517:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/mapedit/studio.cc:2981: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 illegal[5];
data/exult-1.6/mapedit/tools/mockup/defs.h:1:9:  [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.
typedef char chunk[2];
data/exult-1.6/mapedit/tools/mockup/defs.h:2:9:  [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.
typedef char u7map[36864 * 2]; // 192*192 chunk, a chunk is 2 chars long
data/exult-1.6/mapedit/tools/mockup/main.c:61: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 cmd[256], buff[7];
data/exult-1.6/mapedit/tools/mockup/main.c:99:6:  [2] (misc) fopen:
  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).
	f = fopen(argv[2], "ra");
data/exult-1.6/mapedit/tools/mockup/main.c:105:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
		sprintf(buff, "%02x%02x%02x", red, green, blue);
data/exult-1.6/mapedit/tools/mockup/main.c:146:11:  [2] (misc) fopen:
  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).
	if ((f = fopen("u7map", "wb")) == NULL) {
data/exult-1.6/mapedit/tools/smooth/config.c:36:12:  [2] (misc) fopen:
  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).
		if ((f = fopen(configfile, "ra")) == NULL) {
data/exult-1.6/mapedit/tools/smooth/config.c:45: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 line[MAX_LINE_LENGTH];
data/exult-1.6/mapedit/tools/smooth/globals.h:50:9:  [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.
typedef char colour_hex[8];
data/exult-1.6/mapedit/tools/smooth/image.c:123:2:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
	sprintf(ret, "%02x%02x%02x", \
data/exult-1.6/mapedit/tools/smooth/param.c:52:34:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					printf("debug value: %d\n", atoi(argv[i + 1]));
data/exult-1.6/mapedit/tools/smooth/param.c:53:24:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					g_statics.debug = atoi(argv[i + 1]);
data/exult-1.6/mapedit/tools/smooth/plugin.c:27:10:  [2] (buffer) TCHAR:
  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.
		static TCHAR lpMsgBuf[256];
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_randomize.c:11:1:  [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 col[256][256][7];
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_randomize.c:96:1:  [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 *plugin_apply(char colour[6]) {
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_randomize.c:96:20:  [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 *plugin_apply(char colour[6]) {
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_smooth.c:14:1:  [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 col[256][15][7]; // colour has 6 char + \0, 13 possible choice + trigger + slave and max of 256 colours that could be subject to transformation
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_smooth.c:154:1:  [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 *plugin_apply(char colour[6], glob_variables *g_var) {
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_smooth.c:154:20:  [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 *plugin_apply(char colour[6], glob_variables *g_var) {
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_stream.c:14:1:  [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 col[256][18][7];
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_stream.c:154:1:  [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 *plugin_apply(char colour[6], glob_variables *g_var) {
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_stream.c:154:20:  [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 *plugin_apply(char colour[6], glob_variables *g_var) {
data/exult-1.6/mapedit/u7shp.c:323:7:  [2] (misc) fopen:
  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).
	fp = fopen(filename, "rb");
data/exult-1.6/mapedit/u7shp.c:430:7:  [2] (misc) fopen:
  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).
	fp = fopen(filename, "rb");
data/exult-1.6/mapedit/u7shp.c:803:3:  [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(frame->pixels, out, frame->datalen);
data/exult-1.6/mapedit/u7shp.c:809:7:  [2] (misc) fopen:
  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).
	fp = fopen(filename, "wb");
data/exult-1.6/mapedit/ucbrowse.cc:360: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 num[20];
data/exult-1.6/mapedit/ucbrowse.cc:361:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
		sprintf(num, "%05xH", sym->get_val());
data/exult-1.6/mapedit/uniquepal.c:29:10:  [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.
unsigned char pal[768];
data/exult-1.6/mapedit/uniquepal.c:61:7:  [2] (misc) fopen:
  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).
	fp = fopen(argv[1], "r");
data/exult-1.6/mapedit/uniquepal.c:138:7:  [2] (misc) fopen:
  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).
	fp = fopen(argv[2], "w");
data/exult-1.6/monsters.cc:239:9:  [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.
	static char monster_mode_odds[5][4] = {
data/exult-1.6/msvc9/exconfig/exconfig.cpp:73: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        name[256];
data/exult-1.6/msvc9/exconfig/exconfig.cpp:99:17:  [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.
	void GetString(char p[MAX_STRLEN]);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:194:22:  [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.
void Path::GetString(char p[MAX_STRLEN]) {
data/exult-1.6/msvc9/exconfig/exconfig.cpp:218: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 p[MAX_STRLEN];
data/exult-1.6/msvc9/exconfig/exconfig.cpp:337: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            p[MAX_STRLEN];
data/exult-1.6/msvc9/msvc_kludges.h:113:9:  [2] (misc) fopen:
  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).
using ::fopen;
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:73: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        name[256];
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:99:17:  [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.
	void GetString(char p[MAX_STRLEN]);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:194:22:  [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.
void Path::GetString(char p[MAX_STRLEN]) {
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:218: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 p[MAX_STRLEN];
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:337: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            p[MAX_STRLEN];
data/exult-1.6/msvcstuff/msvc_kludges.h:122:9:  [2] (misc) fopen:
  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).
using ::fopen;
data/exult-1.6/objs/barge.cc:873:11:  [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.
	unsigned char buf[20];      // 13-byte entry + length-byte.
data/exult-1.6/objs/chunkter.cc:164:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(reinterpret_cast<char *>(undo_shapes),
data/exult-1.6/objs/chunkter.cc:196:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(reinterpret_cast<char *>(&shapes[0]),
data/exult-1.6/objs/contain.cc:621:11:  [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.
	unsigned char buf[20];      // 12-byte entry.
data/exult-1.6/objs/egg.cc:1166:11:  [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.
	unsigned char buf[30];      // 12-14 byte entry.
data/exult-1.6/objs/iregobjs.cc:160:11:  [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.
	unsigned char buf[20];      // 10-byte entry;
data/exult-1.6/objs/objnames.cc:107: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 buf[20];
data/exult-1.6/objs/objnames.cc:216: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 buf[50];
data/exult-1.6/objs/objs.cc:1754:11:  [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.
	unsigned char buf[5];
data/exult-1.6/objs/objs.h:86:18:  [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.
	static unsigned char rotate[8]; // For getting rotated frame #.
data/exult-1.6/objs/spellbook.cc:44:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/objs/spellbook.cc:312:11:  [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.
	unsigned char buf[24];      // 18-byte entry.
data/exult-1.6/objs/spellbook.cc:314:2:  [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(ptr, &circles[0], 5);    // Store the way U7 does it.
data/exult-1.6/objs/spellbook.cc:317:2:  [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(ptr, &circles[5], 4);    // Rest of spell circles.
data/exult-1.6/objs/spellbook.h:39:11:  [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.
	unsigned char circles[9];   // Spell-present flags for each circle.
data/exult-1.6/objs/virstone.cc:61:11:  [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.
	unsigned char buf[20];      // 12-byte entry.
data/exult-1.6/opengl/model.h:82:18:  [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.
	static unsigned char def_color[3];
data/exult-1.6/opengl/model3ds.cc:70:11:  [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.
	unsigned char v[2];
data/exult-1.6/opengl/model3ds.cc:75:11:  [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.
	unsigned char v[4];
data/exult-1.6/opengl/model3ds.cc:86:11:  [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.
	unsigned char v[4];
data/exult-1.6/opengl/model3ds.cc:102:11:  [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.
	unsigned char header[6];
data/exult-1.6/opengl/model3ds.cc:245:13:  [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.
			unsigned char c[3];
data/exult-1.6/palette.cc:36:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/palette.cc:63:2:  [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(pal1, pal->pal1, 768);
data/exult-1.6/palette.cc:64:2:  [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(pal2, pal->pal2, 768);
data/exult-1.6/palette.cc:140:14:  [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.
    unsigned char palnew[768],
data/exult-1.6/palette.cc:146:2:  [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(pal1, palnew, 768);
data/exult-1.6/palette.cc:223:4:  [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(pal1, buf, 768);
data/exult-1.6/palette.cc:366:12:  [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.
		unsigned char fade_pal[768];
data/exult-1.6/palette.cc:426:12:  [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.
		unsigned char fade_pal[768];
data/exult-1.6/palette.cc:496:11:  [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.
	unsigned char palnew[768];
data/exult-1.6/palette.cc:506:3:  [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(palnew, palold, 768);
data/exult-1.6/palette.cc:549:36:  [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.
void Palette::set_palette(unsigned char palnew[768]) {
data/exult-1.6/palette.cc:550:2:  [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(pal1, palnew, 768);
data/exult-1.6/palette.h:48:11:  [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.
	unsigned char pal1[768];
data/exult-1.6/palette.h:49:11:  [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.
	unsigned char pal2[768];
data/exult-1.6/palette.h:59:18:  [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.
	static unsigned char border[3];
data/exult-1.6/palette.h:74:20:  [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.
	void set(unsigned char palnew[768], int new_brightness = -1,
data/exult-1.6/palette.h:117:28:  [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.
	void set_palette(unsigned char palnew[768]);
data/exult-1.6/pathfinder/path.cc:266:24:  [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).
	vector<Search_node *> open; // Nodes to be done, by priority. Each
data/exult-1.6/pathfinder/path.cc:278:19:  [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).
	A_star_queue() : open(256), lookup(1000)
data/exult-1.6/pathfinder/path.cc:280:19:  [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).
	A_star_queue() : open(256), lookup()
data/exult-1.6/pathfinder/path.cc:283:3:  [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).
		open.insert(open.begin(), 256, static_cast<Search_node *>(0));
data/exult-1.6/pathfinder/path.cc:283:15:  [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).
		open.insert(open.begin(), 256, static_cast<Search_node *>(0));
data/exult-1.6/pathfinder/path.cc:284: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).
		best = open.size(); // Best is past end.
data/exult-1.6/pathfinder/path.cc:304:31:  [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).
		if (pri >= static_cast<int>(open.size()))
data/exult-1.6/pathfinder/path.cc:305:4:  [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).
			open.resize(pri + 2);
data/exult-1.6/pathfinder/path.cc:306:3:  [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).
		open[pri] = nd;
data/exult-1.6/pathfinder/path.cc:310:53:  [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).
		Search_node *last = total_cost < static_cast<int>(open.size()) ?
data/exult-1.6/pathfinder/path.cc:311:23:  [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).
		                    open[total_cost] : 0;
data/exult-1.6/pathfinder/path.cc:326:53:  [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).
		Search_node *last = total_cost < static_cast<int>(open.size()) ?
data/exult-1.6/pathfinder/path.cc:327:23:  [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).
		                    open[total_cost] : 0;
data/exult-1.6/pathfinder/path.cc:335:15:  [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).
				int cnt = open.size();
data/exult-1.6/pathfinder/path.cc:337: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).
					if (open[best] != 0)
data/exult-1.6/pathfinder/path.cc:343:47:  [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).
		Search_node *last = best < static_cast<int>(open.size()) ? open[best] : 0;
data/exult-1.6/pathfinder/path.cc:343:62:  [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).
		Search_node *last = best < static_cast<int>(open.size()) ? open[best] : 0;
data/exult-1.6/pathfinder/path.cc:351: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).
			int cnt = open.size();
data/exult-1.6/pathfinder/path.cc:353: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).
				if (open[best] != 0)
data/exult-1.6/readnpcs.cc:216:11:  [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.
	unsigned char ent[10];
data/exult-1.6/readnpcs.cc:332:13:  [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.
			unsigned char ent[20];
data/exult-1.6/schedule.cc:490:10:  [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.
		signed char frames[2];
data/exult-1.6/schedule.cc:931:10:  [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.
		signed char frames[8];      // Frames.
data/exult-1.6/schedule.cc:934:10:  [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.
		static char choices[3] = {0, 8, 9};
data/exult-1.6/schedule.cc:1309:12:  [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.
				signed char frames[14];     // Get frames to show.
data/exult-1.6/schedule.cc:1666:12:  [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.
				signed char frames[3];
data/exult-1.6/schedule.cc:1690:10:  [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.
		signed char frames[12];
data/exult-1.6/schedule.cc:1915:10:  [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.
		signed char frames[20];     // Use tool.
data/exult-1.6/schedule.cc:2004:10:  [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.
		signed char frames[20];     // Use pick.
data/exult-1.6/schedule.cc:2503:9:  [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.
	signed char frames[2];
data/exult-1.6/schedule.cc:2783:11:  [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.
			signed char frames[5];
data/exult-1.6/schedule.cc:2835:11:  [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.
			signed char frames[3];
data/exult-1.6/schedule.cc:3116:10:  [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.
		signed char frames[2];
data/exult-1.6/schedule.cc:4069:10:  [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.
		signed char frames[5];
data/exult-1.6/schedule.cc:4400:10:  [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.
		signed char fr[2];
data/exult-1.6/schedule.cc:4906:10:  [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.
		signed char frames[12];
data/exult-1.6/server/objserial.cc:45:7:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	std::memcpy(buf, str, len);     // Then the bytes.
data/exult-1.6/server/objserial.cc:222:18:  [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.
	static unsigned char buf[Exult_server::maxlength];
data/exult-1.6/server/objserial.cc:268:18:  [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.
	static unsigned char buf[Exult_server::maxlength];
data/exult-1.6/server/objserial.cc:315:18:  [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.
	static unsigned char buf[Exult_server::maxlength];
data/exult-1.6/server/objserial.cc:368:18:  [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.
	static unsigned char buf[Exult_server::maxlength];
data/exult-1.6/server/objserial.cc:435:18:  [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.
	static unsigned char buf[Exult_server::maxlength];
data/exult-1.6/server/objserial.cc:517:18:  [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.
	static unsigned char buf[Exult_server::maxlength];
data/exult-1.6/server/servemsg.cc:59:11:  [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.
	unsigned char buf[maxlength + hdrlength];
data/exult-1.6/server/servemsg.cc:66:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(&buf[5], data, datalen);    // The data itself.
data/exult-1.6/server/servemsg.cc:89:11:  [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.
	unsigned char buf[hdrlength];
data/exult-1.6/server/server.cc:205:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/server/server.cc:324: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.
		static const char *msgs[3] = {"Terrain-Editing Aborted",
data/exult-1.6/server/server.cc:380:12:  [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.
		unsigned char data[Exult_server::maxlength];
data/exult-1.6/server/server.cc:467: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 msg[80];
data/exult-1.6/server/server.cc:471:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
		sprintf(msg, "Map #%02x", num);
data/exult-1.6/server/servewin32.cc:64: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 filename[MAX_PATH];
data/exult-1.6/shapeid.cc:283:19:  [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.
		static unsigned char hard_blends[4 * 17] = {
data/exult-1.6/shapeid.cc:329:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			std::memcpy(xforms[nxforms - 1 - i].colors, data,
data/exult-1.6/shapeid.h:67:11:  [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.
	unsigned char special_pixels[NPIXCOLORS];   // Special colors.
data/exult-1.6/shapes/data_utils.h:524: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 buf[50];
data/exult-1.6/shapes/data_utils.h:883: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 buf[50];
data/exult-1.6/shapes/miscinf.cc:361: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 buf[50];
data/exult-1.6/shapes/miscinf.cc:433:8:  [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 *sections[size] = {
data/exult-1.6/shapes/miscinf.cc:466:8:  [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 *sections[size] = {
data/exult-1.6/shapes/pngio.cc:64:13:  [2] (misc) fopen:
  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).
	FILE *fp = fopen(pngname, "rb");
data/exult-1.6/shapes/pngio.cc:67:11:  [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.
	unsigned char sigbuf[8];        // Make sure it's a .png.
data/exult-1.6/shapes/pngio.cc:189:13:  [2] (misc) fopen:
  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).
	FILE *fp = fopen(pngname, "wb");
data/exult-1.6/shapes/pngio.cc:273:13:  [2] (misc) fopen:
  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).
	FILE *fp = fopen(pngname, "rb");
data/exult-1.6/shapes/pngio.cc:276:11:  [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.
	unsigned char sigbuf[8];        // Make sure it's a .png.
data/exult-1.6/shapes/pngio.cc:360:13:  [2] (misc) fopen:
  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).
	FILE *fp = fopen(pngname, "wb");
data/exult-1.6/shapes/shapeinf.cc:148:3:  [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(weapon_offsets, inf2.weapon_offsets, 64);
data/exult-1.6/shapes/shapeinf.h:156:11:  [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.
	unsigned char tfa[3];       // From "tfa.dat".+++++Keep for
data/exult-1.6/shapes/shapeinf.h:159:11:  [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.
	unsigned char dims[3];      //   (x, y, z)
data/exult-1.6/shapes/shapeinf.h:161:11:  [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.
	unsigned char shpdims[2];   // From "shpdims.dat".
data/exult-1.6/shapes/shapevga.cc:474:12:  [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.
		unsigned char buf[512];
data/exult-1.6/shapes/shapevga.cc:525:12:  [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.
		unsigned char occbits[c_occsize];   // c_max_shapes bit flags.
data/exult-1.6/shapes/shapewrite.cc:285:11:  [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.
	unsigned char occbits[c_occsize];   // c_max_shapes bit flags.
data/exult-1.6/shapes/vgafile.cc:49:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/shapes/vgafile.cc:259: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(out, pixels, len);
data/exult-1.6/shapes/vgafile.cc:285:7:  [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(out, pixels, c);
data/exult-1.6/shapes/vgafile.cc:300:2:  [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(data, buf, datalen);
data/exult-1.6/shapes/vgafile.cc:324:3:  [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(data, pixels, c_num_tile_bytes);
data/exult-1.6/tools/expack.cc:40:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
using std::atoi;
data/exult-1.6/tools/expack.cc:297:22:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			U7object f(fname, atoi(argv[3]));
data/exult-1.6/tools/expack.cc:307: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 outfile[32];
data/exult-1.6/tools/expack.cc:316: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 outfile[32];
data/exult-1.6/tools/gnome_shp_thumbnailer.cc:60:17:  [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.
static unsigned char shppal[768] = {
data/exult-1.6/tools/gnome_shp_thumbnailer.cc:271:14:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	int  size = atoi(argv[2]);
data/exult-1.6/tools/ipack.cc:237: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 buf[1024];
data/exult-1.6/tools/ipack.cc:311: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 fname[300], dir[300];
data/exult-1.6/tools/ipack.cc:414:2:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
	strcat(txtpal, ".txt");
data/exult-1.6/tools/ipack.cc:539:11:  [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.
	unsigned char palbuf[3 * 256];  // We always write 256 colors.
data/exult-1.6/tools/rip.cc:19: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 s[10];
data/exult-1.6/tools/rip.cc:20: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 filename[18];
data/exult-1.6/tools/rip.cc:23:13:  [2] (misc) fopen:
  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).
	FILE *fi = fopen("index", "r"), *fi2, *fo = fopen("usecode", "wb");
data/exult-1.6/tools/rip.cc:23:46:  [2] (misc) fopen:
  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).
	FILE *fi = fopen("index", "r"), *fi2, *fo = fopen("usecode", "wb");
data/exult-1.6/tools/rip.cc:39:3:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
		strcat(filename, ".uco");
data/exult-1.6/tools/rip.cc:43:15:  [2] (misc) fopen:
  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).
			if ((fi2 = fopen(filename, "rb")) == NULL) {
data/exult-1.6/tools/rip.cc:66: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 s[10];
data/exult-1.6/tools/rip.cc:67: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 filename[18];
data/exult-1.6/tools/rip.cc:92:12:  [2] (misc) fopen:
  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).
	if ((fi = fopen("usecode", "rb+")) == NULL) {
data/exult-1.6/tools/rip.cc:96:13:  [2] (misc) fopen:
  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).
	if ((fo2 = fopen("index", "w")) == NULL) {
data/exult-1.6/tools/rip.cc:116:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(s, "%04X", fn);
data/exult-1.6/tools/rip.cc:118:4:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
			strcat(filename, ".uco");
data/exult-1.6/tools/rip.cc:124:15:  [2] (misc) fopen:
  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).
				if ((fo = fopen(filename, "wb")) == NULL) {
data/exult-1.6/tools/rip.cc:146:15:  [2] (misc) fopen:
  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).
				if ((fo = fopen(filename, "rb")) == NULL) {
data/exult-1.6/tools/shp2pcx.cc:57:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/tools/shp2pcx.cc:147:7:  [2] (misc) fopen:
  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).
	fp = fopen(filename, "rb");
data/exult-1.6/tools/shp2pcx.cc:283:4:  [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(frame->pixels + dsty * width + dstx, pixptr + srcy * frame->width + srcx, frame->width);
data/exult-1.6/tools/shp2pcx.cc:297:7:  [2] (misc) fopen:
  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).
	fp = fopen(filename, "rb");
data/exult-1.6/tools/shp2pcx.cc:373:13:  [2] (misc) fopen:
  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).
	FILE *fp = fopen(filename, "wb");
data/exult-1.6/tools/shp2pcx.cc:413: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 *outprefix, outfilename[255];
data/exult-1.6/tools/splitshp.cc:39:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/tools/splitshp.cc:109:2:  [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(fn, shapefilename, dotpos);
data/exult-1.6/tools/splitshp.cc:110:2:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
	sprintf(fn + dotpos, "_%03i", frame);
data/exult-1.6/tools/splitshp.cc:127:12:  [2] (misc) fopen:
  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).
	shpfile = fopen(filename, "rb");
data/exult-1.6/tools/splitshp.cc:146:16:  [2] (misc) fopen:
  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).
			framefile = fopen(framename, "wb");
data/exult-1.6/tools/splitshp.cc:163:16:  [2] (misc) fopen:
  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).
			framefile = fopen(framename, "wb");
data/exult-1.6/tools/splitshp.cc:204:12:  [2] (misc) fopen:
  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).
	shpfile = fopen(shapefile, "wb");
data/exult-1.6/tools/splitshp.cc:209:15:  [2] (misc) fopen:
  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).
		framefile = fopen(framefiles[i], "rb");
data/exult-1.6/tools/splitshp.cc:281: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 *framefiles[255];
data/exult-1.6/tools/u7voice2syx.cc:42:1:  [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 sysex_buffer[8 + 256 + 2];
data/exult-1.6/tools/u7voice2syx.cc:134: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 reserveSettings[9];            // PARTIAL RESERVE (PART 1) 0-32
data/exult-1.6/tools/u7voice2syx.cc:135: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 chanAssign[9];                 // MIDI CHANNEL (PART1) 0-16 (1-16,OFF)
data/exult-1.6/tools/u7voice2syx.cc:213:17:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	if (data) std::memcpy(sysex_buffer + sysex_data_start, data, len);
data/exult-1.6/tools/u7voice2syx.cc:235: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 name[11];
data/exult-1.6/tools/u7voice2syx.cc:326:10:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
				std::memcpy(name, sysex_buffer + 8, 10);
data/exult-1.6/tools/wuc.cc:30:1:  [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 token[TOKEN_LENGTH], *token2, curlabel[256], indata;
data/exult-1.6/tools/wuc.cc:35:1:  [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 labels[MAX_LABELS][10];
data/exult-1.6/tools/wuc.cc:193:13:  [2] (misc) fopen:
  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).
		if ((fi = fopen(argv[findex], "r")) == NULL) {
data/exult-1.6/tools/wuc.cc:197:13:  [2] (misc) fopen:
  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).
		if ((fo = fopen(argv[findex + 1], "wb")) == NULL) {
data/exult-1.6/tools/wuc.cc:424:10:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
									sprintf(token, "%04X:", word + 1);
data/exult-1.6/tools/wuc.cc:456:10:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
									sprintf(token, "%04X:", word + 1);
data/exult-1.6/txtscroll.cc:44:12:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
using std::atoi;
data/exult-1.6/txtscroll.cc:163: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 numerical[4] = {0, 0, 0, 0};
data/exult-1.6/txtscroll.cc:167:16:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			*txtptr++ = atoi(numerical);
data/exult-1.6/usecode/compiler/ucclass.cc:184: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 buf[150];
data/exult-1.6/usecode/compiler/ucexpr.cc:75: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 buf[50];
data/exult-1.6/usecode/compiler/ucexpr.cc:76:2:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
	sprintf(buf, "_tmpval_%d", cnt++);
data/exult-1.6/usecode/compiler/ucexpr.cc:107: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 buf[150];
data/exult-1.6/usecode/compiler/ucexpr.cc:121: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 buf[150];
data/exult-1.6/usecode/compiler/ucexpr.cc:137: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 buf[180];
data/exult-1.6/usecode/compiler/ucexpr.cc:478: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 buf[150];
data/exult-1.6/usecode/compiler/ucexpr.cc:481:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(buf, "Invalid fun. ID (%d): can't call negative function", value);
data/exult-1.6/usecode/compiler/ucexpr.cc:707: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 buf[150];
data/exult-1.6/usecode/compiler/ucexpr.cc:714:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(buf, "Shape # is equal to fun. ID only for shapes < 0x400; use UI_get_usecode_fun instead");
data/exult-1.6/usecode/compiler/ucexpr.cc:743: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 buf[150];
data/exult-1.6/usecode/compiler/ucexpr.cc:756: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 buf[180];
data/exult-1.6/usecode/compiler/ucexpr.cc:759:5:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
				sprintf(buf,
data/exult-1.6/usecode/compiler/ucexpr.cc:772:5:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
				sprintf(buf,
data/exult-1.6/usecode/compiler/ucexpr.cc:806: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 buf[150];
data/exult-1.6/usecode/compiler/ucexpr.cc:818: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 buf[150];
data/exult-1.6/usecode/compiler/ucexpr.cc:836: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 buf[150];
data/exult-1.6/usecode/compiler/ucexpr.cc:853: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 buf[180];
data/exult-1.6/usecode/compiler/ucexpr.cc:859: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 buf[180];
data/exult-1.6/usecode/compiler/ucfun.cc:45:12:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
using std::memcpy;
data/exult-1.6/usecode/compiler/ucfun.cc:77: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 buf[100];
data/exult-1.6/usecode/compiler/ucfun.cc:395:3:  [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_text_data, text_data, text_data_size);
data/exult-1.6/usecode/compiler/ucfun.cc:397:2:  [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_text_data + text_data_size, text, textlen);
data/exult-1.6/usecode/compiler/ucmain.cc:64: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 outbuf[256];
data/exult-1.6/usecode/compiler/ucmain.cc:87:10:  [2] (misc) fopen:
  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).
		yyin = fopen(argv[optind], "r");
data/exult-1.6/usecode/compiler/ucmain.cc:95:4:  [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(dot, ".uco");
data/exult-1.6/usecode/compiler/ucmain.cc:101:14:  [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.
			outname = strcpy(outbuf, "a.ucout");
data/exult-1.6/usecode/compiler/ucstmt.cc:210: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 buf[50];
data/exult-1.6/usecode/compiler/ucstmt.cc:211:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
		sprintf(buf, "_tmperror_%d", cnt++);
data/exult-1.6/usecode/compiler/ucstmt.cc:435: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 buf[100];
data/exult-1.6/usecode/compiler/ucstmt.cc:608: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 buf[255];
data/exult-1.6/usecode/compiler/ucstmt.cc:718: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 buf[255];
data/exult-1.6/usecode/compiler/ucstmt.cc:871: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 buf[255];
data/exult-1.6/usecode/compiler/ucsym.cc:131: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 buf[180];
data/exult-1.6/usecode/compiler/ucsym.cc:134:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(buf, "Shape # is equal to fun. ID only for shapes < 0x400; use UI_get_usecode_fun instead");
data/exult-1.6/usecode/compiler/ucsym.cc:147:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(buf, "Return of intrinsics are generally not fun. IDs");
data/exult-1.6/usecode/compiler/ucsym.cc:221: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 msg[180];
data/exult-1.6/usecode/compiler/ucsym.cc:251: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 buf[256];
data/exult-1.6/usecode/compiler/ucsym.cc:409: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 buf[180];
data/exult-1.6/usecode/compiler/ucsym.cc:410:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
			sprintf(buf, "Shape number cannot be negative");
data/exult-1.6/usecode/compiler/ucsym.cc:415: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 buf[180];
data/exult-1.6/usecode/compiler/ucsym.cc:422: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 buf[180];
data/exult-1.6/usecode/compiler/ucsym.cc:466: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 buf[256];
data/exult-1.6/usecode/compiler/ucsym.cc:481: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 buf[256];
data/exult-1.6/usecode/compiler/ucsym.cc:488: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 buf[256];
data/exult-1.6/usecode/compiler/ucsym.cc:513: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 buf[256];
data/exult-1.6/usecode/compiler/ucsym.cc:546: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 buf[200];
data/exult-1.6/usecode/compiler/ucsym.cc:616: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 buf[50];
data/exult-1.6/usecode/compiler/ucsym.cc:617:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
		sprintf(buf, "_tmpretval_%d", cnt++);
data/exult-1.6/usecode/compiler/ucsym.cc:674: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 buf[150];
data/exult-1.6/usecode/compiler/ucsym.cc:725: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 msg[180];
data/exult-1.6/usecode/conversation.cc:459: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 text[256];
data/exult-1.6/usecode/conversation.cc:490:15:  [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.
	result = new char *[answers.size()];
data/exult-1.6/usecode/debugserver.cc:50:11:  [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.
	unsigned char data[Exult_server::maxlength];
data/exult-1.6/usecode/debugserver.cc:98:13:  [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.
			unsigned char d[3];
data/exult-1.6/usecode/debugserver.cc:186:12:  [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.
		unsigned char d[13];
data/exult-1.6/usecode/ucdebugging.cc:55:11:  [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.
	unsigned char d[13];
data/exult-1.6/usecode/ucinternal.cc:1548:11:  [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 *name,
data/exult-1.6/usecode/ucinternal.cc:1583:82:  [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.
Usecode_value Usecode_internal::Execute_Intrinsic(UsecodeIntrinsicFn func, const char *name, int intrinsic, int num_parms, Usecode_value parms[12]) {
data/exult-1.6/usecode/ucinternal.cc:2544: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 buf[20];
data/exult-1.6/usecode/ucinternal.h:185:67:  [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.
	Usecode_value   Execute_Intrinsic(UsecodeIntrinsicFn func, const char *name, int intrinsic, int num_parms, Usecode_value parms[12]);
data/exult-1.6/usecode/ucmachine.h:48:11:  [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.
	unsigned char gflags[c_last_gflag + 1]; // Global flags.
data/exult-1.6/usecode/ucserial.cc:68:18:  [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.
	static unsigned char buf[Exult_server::maxlength];
data/exult-1.6/usecode/ucsymtbl.cc:52: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 nm[256];
data/exult-1.6/usecode/ucxt/head2data.cc:47:4:  [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).
	o.open(fname.c_str());
data/exult-1.6/usecode/ucxt/head2data.cc:69:4:  [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).
	o.open(fname.c_str());
data/exult-1.6/usecode/ucxt/head2data.cc:92:4:  [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).
	o.open(fname.c_str());
data/exult-1.6/usecode/useval.h:145:21:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		return str ? std::atoi(str)
data/exult-1.6/win32/exconfig.cc:99: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        name[256];
data/exult-1.6/windrag.h:32:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(data, o.data, size);
data/exult-1.6/windrag.h:40:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(data, d, size);
data/exult-1.6/windrag.h:51:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(buf, data, size);
data/exult-1.6/windrag.h:59:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(data, buf, size);
data/exult-1.6/windrag.h:69:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			std::memcpy(data, o.data, size);
data/exult-1.6/windrag.h:78:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		std::memcpy(data, d, size);
data/exult-1.6/actorio.cc:52:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void Actor::read(
data/exult-1.6/actorio.cc:202:48:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if ((intel_val >> 5) & 1) set_flag(Obj_flags::read);
data/exult-1.6/actorio.cc:367:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			nfile->read(nm, funsize);
data/exult-1.6/actorio.cc:407:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nfile->read(namebuf, 16);
data/exult-1.6/actorio.cc:594:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if (get_flag(Obj_flags::read)) iout |= 1 << 5;
data/exult-1.6/actorio.cc:676:8:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		std::strncpy(nm, usecode_name.c_str(), size);
data/exult-1.6/actorio.cc:698:8:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		std::strncpy(namebuf, namestr.c_str(), 16);
data/exult-1.6/actorio.cc:700:8:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		std::strncpy(namebuf, name.c_str(), 16);
data/exult-1.6/actors.cc:3054:10:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		ptr += strlen(att) + 1;
data/exult-1.6/actors.h:644:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(IDataSource *nfile, int num, bool has_usecode,
data/exult-1.6/audio/OggAudioSample.cc:67:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ids->read(ptr,size*nmemb);
data/exult-1.6/audio/VocAudioSample.cc:345:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ds->read(buffer,19);
data/exult-1.6/audio/WavAudioSample.cc:42:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ds.read(buf,4);
data/exult-1.6/audio/WavAudioSample.cc:48:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ds.read(buf,4);
data/exult-1.6/audio/WavAudioSample.cc:53:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		ds.read(buf,4);
data/exult-1.6/audio/WavAudioSample.cc:118:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ds->read(buf,4);
data/exult-1.6/audio/WavAudioSample.cc:125:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ds->read(buf,4);
data/exult-1.6/audio/WavAudioSample.cc:136:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		ds->read(buf,4);
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp:823:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read[128];
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp:824:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	std::memset(read, false, sizeof(read));
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp:824:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	std::memset(read, false, sizeof(read));
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp:884:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		ds->read(&xmidi_ins, 11);
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp:954:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		void read(IDataSource *ds) {
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp:992:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			ds->read(reinterpret_cast<char *>(reserved), 7);
data/exult-1.6/audio/midi_drivers/FMOplMidiDriver.cpp:1007:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		u7voice_ins.read(ds);
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1816:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		ds->read(name,10);
data/exult-1.6/audio/midi_drivers/LowLevelMidiDriver.cpp:1849:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		ds->read(mt32_timbre_banks[bank][patch]->timbre,246);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1074:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	source->read (reinterpret_cast<char *>(current->ex.sysex_data.buffer), current->ex.sysex_data.len);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1109:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	else if (source) source->read(sysex_buffer+sysex_data_start,len);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1232:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1239:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1304:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1404:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1415:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1437:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1473:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1486:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1576:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/XMidiFile.cpp:1590:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			source->read (buf, 4);
data/exult-1.6/audio/midi_drivers/mt32emu/FileStream.cpp:62:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ifsp.read(reinterpret_cast<char *>(fileData), std::streamsize(size));
data/exult-1.6/audio/midi_drivers/mt32emu/MemoryRegion.h:93:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(unsigned int entry, unsigned int off, Bit8u *dst, unsigned int len) const;
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:1253:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		region->read(first, off, data, len);
data/exult-1.6/audio/midi_drivers/mt32emu/Synth.cpp:2049:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void MemoryRegion::read(unsigned int entry, unsigned int off, Bit8u *dst, unsigned int len) const {
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:130:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy(def_instr_name, w[1], 255);
data/exult-1.6/audio/midi_drivers/timidity/timidity.cpp:213:49:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			strcpy((bank->tone[i].name=safe_Malloc<char>(strlen(w[1])+1)),w[1]);
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:84:5:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		l=strlen(name);
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:87:7:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			el=strlen(*dec);
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:140:2:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	strncpy(current_filename, name, 1023);
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:164:23:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			l=static_cast<int>(strlen(plp->path));
data/exult-1.6/audio/midi_drivers/timidity/timidity_common.cpp:250:31:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	char *path=safe_Malloc<char>(strlen(s)+1);
data/exult-1.6/audio/midi_drivers/timidity/timidity_controls.h:86:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int (*read)(sint32 *valp);
data/exult-1.6/audio/midi_drivers/timidity/timidity_instrum.cpp:208:8:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (strlen(name)+strlen(patch_ext[i])<1024)
data/exult-1.6/audio/midi_drivers/timidity/timidity_instrum.cpp:208:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (strlen(name)+strlen(patch_ext[i])<1024)
data/exult-1.6/audio/midi_drivers/timidity/timidity_playmidi.cpp:645:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		switch(rc=ctl->read(&val))
data/exult-1.6/cheat_screen.cc:223:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	if (input && std::strlen(input)) {
data/exult-1.6/cheat_screen.cc:225:52:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		font->paint_text_fixedwidth(ibuf, "_", 64 + std::strlen(input) * 8, maxy - 18, 8);
data/exult-1.6/cheat_screen.cc:427:24:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					int curlen = std::strlen(input);
data/exult-1.6/cheat_screen.cc:433:24:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					int curlen = std::strlen(input);
data/exult-1.6/cheat_screen.cc:440:24:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					int curlen = std::strlen(input);
data/exult-1.6/cheat_screen.cc:447:24:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					int curlen = std::strlen(input);
data/exult-1.6/cheat_screen.cc:461:24:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					int curlen = std::strlen(input);
data/exult-1.6/cheat_screen.cc:478:24:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					int curlen = std::strlen(input);
data/exult-1.6/cheat_screen.cc:484:24:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					int curlen = std::strlen(input);
data/exult-1.6/cheat_screen.cc:491:24:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					int curlen = std::strlen(input);
data/exult-1.6/cheat_screen.cc:1305:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (!std::strlen(input)) mode = CP_Canceled;
data/exult-1.6/cheat_screen.cc:1543:66:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		snprintf(buf, 512, "[4] Read...%c", actor->get_flag(Obj_flags::read) ? 'Y' : 'N');
data/exult-1.6/cheat_screen.cc:1707:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		if (actor->get_flag(Obj_flags::read))
data/exult-1.6/cheat_screen.cc:1708:33:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			actor->clear_flag(Obj_flags::read);
data/exult-1.6/cheat_screen.cc:1710:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			actor->set_flag(Obj_flags::read);
data/exult-1.6/effects.cc:51:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/effects.cc:1106:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = strlen(ptr);
data/exult-1.6/exult.cc:455:8:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	len = strlen(CmdLine);
data/exult-1.6/exult.cc:1059:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			gwin->read();   // Restart
data/exult-1.6/exult.cc:2241:2:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120). Risk is low because the source is a
  constant string.
	strncpy(text, "Gamma Changed", 256);
data/exult-1.6/files/Flat.cc:50:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	data->read(buffer, len);
data/exult-1.6/files/Flex.cc:38:12:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
using std::strncpy;
data/exult-1.6/files/Flex.cc:49:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	data->read(title, sizeof(title));
data/exult-1.6/files/Flex.cc:99:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	data->read(buffer, len);
data/exult-1.6/files/Flex.cc:140:2:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	strncpy(titlebuf, title, sizeof(titlebuf) - 1);
data/exult-1.6/files/IFF.cc:80:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		data->read(type, 4);
data/exult-1.6/files/IFF.cc:115:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	data->read(buffer, len);
data/exult-1.6/files/IFF.cc:129:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in->read(ckid, 4);
data/exult-1.6/files/Table.cc:88:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	data->read(buffer, len);
data/exult-1.6/files/databuf.h:45:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	virtual void read(void *, size_t) = 0;
data/exult-1.6/files/databuf.h:46:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	virtual void read(std::string&, size_t) = 0;
data/exult-1.6/files/databuf.h:104:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(void *b, size_t len) {
data/exult-1.6/files/databuf.h:105:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in->read(static_cast<char *>(b), len);
data/exult-1.6/files/databuf.h:108:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	virtual void read(std::string& s, size_t len) {
data/exult-1.6/files/databuf.h:110:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in->read(&s[0], len);
data/exult-1.6/files/databuf.h:211:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(void *b, size_t len) {
data/exult-1.6/files/databuf.h:216:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	virtual void read(std::string& s, size_t len) {
data/exult-1.6/files/listfiles.cc:58:9:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	nLen = strlen(name) + 1;
data/exult-1.6/files/listfiles.cc:71:11:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	for (i = strlen(stripped_path) - 1; i; i--)
data/exult-1.6/files/listfiles.cc:86:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			nLen = std::strlen(stripped_path);
data/exult-1.6/files/listfiles.cc:87:12:  [1] (buffer) _tcslen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			nLen2 = _tcslen(fileinfo.cFileName) + 1;
data/exult-1.6/files/listfiles.cc:119:11:  [1] (buffer) _tcslen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		nLen2 = _tcslen(lpMsgBuf) + 1;
data/exult-1.6/files/snprintf.cc:568:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			size_t n = !q ? strlen(p) : (q - p);
data/exult-1.6/files/snprintf.cc:743:49:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					else if (!precision_specified) str_arg_l = strlen(str_arg);
data/exult-1.6/files/utils.cc:406:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int nLen = std::strlen(n) + 1;
data/exult-1.6/files/utils.cc:493:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int nLen = std::strlen(n) + 1;
data/exult-1.6/files/utils.cc:711:8:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		std::strncpy(dpath, runpath, plen + 1);
data/exult-1.6/files/utils.cc:810:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in.read(buf, toread);
data/exult-1.6/files/utils.cc:874:28:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	char *ret = new char[std::strlen(s) + 1];
data/exult-1.6/files/utils.cc:898:9:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		len = strlen(to);
data/exult-1.6/files/zip/unzip.cc:680:6:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	if (strlen(szFileName) >= UNZ_MAXFILENAMEINZIP)
data/exult-1.6/files/zip/zip.cc:335:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		size_comment = strlen(comment);
data/exult-1.6/files/zip/zip.cc:337:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	size_filename = strlen(filename);
data/exult-1.6/files/zip/zip.cc:607:25:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		size_global_comment = strlen(global_comment);
data/exult-1.6/flic/playfli.cc:158:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					fli_data->read(reinterpret_cast<char *>(&colors[current * 3]), change * 3);
data/exult-1.6/flic/playfli.cc:193:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
							fli_data->read(pixbuf, size_count);
data/exult-1.6/flic/playfli.cc:219:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
							fli_data->read(&pixbuf[pixpos],
data/exult-1.6/gamedat.cc:78:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/gamedat.cc:79:12:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
using std::strncpy;
data/exult-1.6/gamedat.cc:107:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int baselen = strlen(basepath);
data/exult-1.6/gamedat.cc:116:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in.read(&fname[baselen], 13);
data/exult-1.6/gamedat.cc:117:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int namelen = strlen(fname);
data/exult-1.6/gamedat.cc:123:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in.read(buf, len);
data/exult-1.6/gamedat.cc:313:2:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	strncpy(namebuf, base, sizeof(namebuf));
data/exult-1.6/gamedat.cc:316:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(buf, len);
data/exult-1.6/gamedat.cc:339:2:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	strncpy(namebuf, base, sizeof(namebuf));
data/exult-1.6/gamedat.cc:342:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	source.read(buf, len);
data/exult-1.6/gamedat.cc:425:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			int len = strlen(dname);
data/exult-1.6/gamedat.cc:472:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.read(buf, sizeof(buf) - 1);
data/exult-1.6/gamedat.cc:546:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(name, namestr.c_str(), 18);
data/exult-1.6/gamedat.cc:628:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in->read(party[i].name, 18);
data/exult-1.6/gamedat.cc:671:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(buf, sizeof(buf) - 1);
data/exult-1.6/gamedat.cc:672:19:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	name = new char [strlen(buf) + 1];
data/exult-1.6/gamedat.cc:699:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in.read(&fname[sizeof(GAMEDAT) - 1], 13);
data/exult-1.6/gamedat.cc:700:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int namelen = strlen(fname);
data/exult-1.6/gamedat.cc:707:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.read(buf, len);
data/exult-1.6/gamedat.cc:776:58:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120). Risk is low because the source is a
  constant string.
	if (unzGetGlobalComment(unzipfile, namebuf, 0x50) <= 0) strncpy(namebuf, "UNNAMED", 0x50);
data/exult-1.6/gamedat.cc:777:19:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	name = new char [strlen(namebuf) + 1];
data/exult-1.6/gamedat.cc:861:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			int namelen = strlen(oname);
data/exult-1.6/gamedat.cc:986:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int namelen = strlen(oname);
data/exult-1.6/gamedat.cc:990:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		for (size_t i = 0; i < strlen(oname2); i++) {
data/exult-1.6/gamedat.cc:1052:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ds.read(buf, size);
data/exult-1.6/gamedat.cc:1101:2:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	strncpy(buf, fname2 ? fname2 : fname, 13);
data/exult-1.6/gamedat.cc:1114:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		ds.read(buf, size);
data/exult-1.6/gamedat.cc:1155:8:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		std::strncpy(title, savename, 0x50);
data/exult-1.6/gamemap.cc:74:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/gamemap.cc:112:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		chunks->read(reinterpret_cast<char *>(buf), ntiles * 3);
data/exult-1.6/gamemap.cc:115:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		chunks->read(reinterpret_cast<char *>(buf), ntiles * 2);
data/exult-1.6/gamemap.cc:175:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	chunks->read(v2buf, sizeof(v2buf));
data/exult-1.6/gamemap.cc:223:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			u7map.read(reinterpret_cast<char *>(buf), sizeof(buf));
data/exult-1.6/gamemap.cc:405:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = strlen(fname);
data/exult-1.6/gamemap.cc:596:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ifix->read(reinterpret_cast<char *>(entries), len);
data/exult-1.6/gamemap.cc:653:10:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		len += strlen(att) + 1 + 2; // Name, NULL, val.
data/exult-1.6/gamemap.cc:661:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		ireg->write(att, strlen(att) + 1);
data/exult-1.6/gamemap.cc:702:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = 1 + strlen(str);
data/exult-1.6/gamemap.cc:838:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ireg->read(reinterpret_cast<char *>(buf), len);
data/exult-1.6/gamemap.cc:946:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		ireg->read(reinterpret_cast<char *>(entry), entlen);
data/exult-1.6/gamemgr/bggame.cc:62:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/gamemgr/bggame.cc:2086:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
						int len = strlen(npc_name);
data/exult-1.6/gamemgr/bggame.cc:2136:27:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					if (selected == 0 && strlen(npc_name) > 0)
data/exult-1.6/gamemgr/bggame.cc:2137:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
						npc_name[strlen(npc_name) - 1] = 0;
data/exult-1.6/gamemgr/bggame.cc:2146:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
						int len = strlen(npc_name);
data/exult-1.6/gamemgr/modmgr.cc:298:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.read(fname, 13);
data/exult-1.6/gamemgr/modmgr.cc:301:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				in.read(game_identity, len);
data/exult-1.6/gamemgr/sigame.cc:49:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/gamemgr/sigame.cc:1380:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
						int len = strlen(npc_name);
data/exult-1.6/gamemgr/sigame.cc:1430:27:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					if (selected == 0 && strlen(npc_name) > 0)
data/exult-1.6/gamemgr/sigame.cc:1431:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
						npc_name[strlen(npc_name) - 1] = 0;
data/exult-1.6/gamemgr/sigame.cc:1440:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
						int len = strlen(npc_name);
data/exult-1.6/gamewin.cc:1357:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		identity_file.read(gamedat_identity, 256);
data/exult-1.6/gamewin.cc:1412:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void Game_window::read(
data/exult-1.6/gamewin.cc:1573:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read();             // This does the whole restore.
data/exult-1.6/gamewin.cc:2889:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	usecode->read();        // Read the usecode flags
data/exult-1.6/gamewin.h:560:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read();            // Read in 'gamedat'.
data/exult-1.6/gumps/File_gump.cc:42:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/gumps/File_gump.cc:43:12:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
using std::strncpy;
data/exult-1.6/gumps/File_gump.cc:168:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(text, newtxt ? newtxt : "", max_size);
data/exult-1.6/gumps/File_gump.cc:169:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		length = strlen(text);
data/exult-1.6/gumps/File_gump.cc:392:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	gwin->read();           // And read the files in.
data/exult-1.6/gumps/Newfile_gump.cc:52:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/gumps/Newfile_gump.cc:53:12:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
using std::strncpy;
data/exult-1.6/gumps/Newfile_gump.cc:251:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	gwin->read();
data/exult-1.6/gumps/Newfile_gump.cc:280:7:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	if (!strlen(newname) || selected == -3)
data/exult-1.6/gumps/Newfile_gump.cc:494:9:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
			std::strncat(info, "\nFile: ", sizeof(info) - strlen(info) - 1);
data/exult-1.6/gumps/Newfile_gump.cc:494:50:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			std::strncat(info, "\nFile: ", sizeof(info) - strlen(info) - 1);
data/exult-1.6/gumps/Newfile_gump.cc:496:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			int offset = strlen(filename);
data/exult-1.6/gumps/Newfile_gump.cc:504:9:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
			std::strncat(info, filename + offset, sizeof(info) - strlen(info) - 1);
data/exult-1.6/gumps/Newfile_gump.cc:504:57:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			std::strncat(info, filename + offset, sizeof(info) - strlen(info) - 1);
data/exult-1.6/gumps/Newfile_gump.cc:514:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			int offset = strlen(filename);
data/exult-1.6/gumps/Newfile_gump.cc:522:9:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
			std::strncat(info, filename + offset, sizeof(info) - strlen(info) - 1);
data/exult-1.6/gumps/Newfile_gump.cc:522:57:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			std::strncat(info, filename + offset, sizeof(info) - strlen(info) - 1);
data/exult-1.6/gumps/Newfile_gump.cc:644:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		cursor = strlen(newname);
data/exult-1.6/gumps/Newfile_gump.cc:881:49:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	if (cursor == -1 || cursor == static_cast<int>(strlen(newname)))
data/exult-1.6/gumps/Newfile_gump.cc:883:32:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	for (unsigned i = cursor; i < strlen(newname); i++)
data/exult-1.6/gumps/Newfile_gump.cc:893:32:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	if (cursor > static_cast<int>(strlen(newname))) cursor = strlen(newname);
data/exult-1.6/gumps/Newfile_gump.cc:893:59:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	if (cursor > static_cast<int>(strlen(newname))) cursor = strlen(newname);
data/exult-1.6/gumps/Newfile_gump.cc:960:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(cur_party[i].name, namestr.c_str(), 18);
data/exult-1.6/gumps/Newfile_gump.cc:1075:11:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	for (i = strlen(filename) - 1; !isdigit(filename[i]); i--)
data/exult-1.6/gumps/Notebook_gump.cc:188:2:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	read();
data/exult-1.6/gumps/Notebook_gump.cc:733:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void Notebook_gump::read(
data/exult-1.6/gumps/Notebook_gump.h:102:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	static void read();     // Read it in.
data/exult-1.6/gumps/Sign_gump.cc:41:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		if (!avatar->get_flag(Obj_flags::read))
data/exult-1.6/gumps/Sign_gump.cc:86:49:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if (!serpentine && avatar->get_flag(Obj_flags::read)) {
data/exult-1.6/gumps/Spellbook_gump.cc:465:12:  [1] (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 character.
						std::strcpy(text, "#"); // # = infinity in SI's font 5
data/exult-1.6/gumps/Spellbook_gump.cc:471:11:  [1] (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 character.
					std::strcpy(text, "");
data/exult-1.6/gumps/Text_gump.cc:30:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/gumps/Text_gump.cc:39:13:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int slen = strlen(str);     // Length of new text.
data/exult-1.6/keyactions.cc:117:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		gwin->read();
data/exult-1.6/keys.cc:47:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/keys.cc:577:3:  [1] (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 character.
		strcpy(returned_key, "");   // prevent garbage text
data/exult-1.6/keys.cc:853:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	for (i = 0; strlen(SDLKeyStringTable[i].s) > 0; i++)
data/exult-1.6/keys.cc:856:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	for (i = 0; strlen(ExultActions[i].s) > 0; i++)
data/exult-1.6/mapedit/chunklst.cc:204:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		chunkfile.read(reinterpret_cast<char *>(data), chunksz);
data/exult-1.6/mapedit/chunklst.cc:770:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	chunkfile.read(v2buf, sizeof(v2buf));
data/exult-1.6/mapedit/combo.cc:478:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const unsigned char *Combo::read(
data/exult-1.6/mapedit/combo.cc:788:13:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int len = strlen(buf);
data/exult-1.6/mapedit/combo.cc:848:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		combo->read(buf, len);
data/exult-1.6/mapedit/combo.h:85:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	const unsigned char *read(const unsigned char *buf, int bufsize);
data/exult-1.6/mapedit/execbox.cc:106:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while ((len = read(id, buf, sizeof(buf))) > 0)
data/exult-1.6/mapedit/execbox.cc:318:48:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	gtk_text_buffer_insert_at_cursor(buffer, txt, strlen(txt));
data/exult-1.6/mapedit/maps.cc:170:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			sprintf(fname + strlen(fname), "%02x", schunk);
data/exult-1.6/mapedit/maps.cc:172:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			sprintf(tname + strlen(tname), "%02x", schunk);
data/exult-1.6/mapedit/npcedit.cc:826:30:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	const char *numptr = name + strlen(name) - 1;
data/exult-1.6/mapedit/shapeedit.cc:3353:24:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (ucfun == eptr || strlen(ucfun) == 0)
data/exult-1.6/mapedit/shapefile.cc:346:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in.read(entries[0], size);
data/exult-1.6/mapedit/shapefile.cc:443:37:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	        strcasecmp(".pal", bname + strlen(bname) - 4) == 0)
data/exult-1.6/mapedit/shapefile.cc:519:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.read(entries[0], sz);
data/exult-1.6/mapedit/shapefile.cc:547:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int namelen = strlen(basename);
data/exult-1.6/mapedit/shapefile.cc:625:41:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	else if (strcasecmp(".pal", basename + strlen(basename) - 4) == 0) {
data/exult-1.6/mapedit/shapegroup.cc:234:34:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			                     gname) + strlen(gname) + 1;
data/exult-1.6/mapedit/shapegroup.cc:374:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		long len = strlen(nm) + 1 + 2 + 2 * sz;
data/exult-1.6/mapedit/shapegroup.cc:377:30:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		unsigned char *ptr = buf + strlen(nm) + 1;
data/exult-1.6/mapedit/shapelst.cc:73:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/mapedit/shapelst.cc:1234:29:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		char *fullname = new char[strlen(fname) + 30];
data/exult-1.6/mapedit/shapelst.cc:1279:28:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	char *fullname = new char[strlen(fname) + 30];
data/exult-1.6/mapedit/shapelst.cc:1334:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = strlen(fname);
data/exult-1.6/mapedit/shapelst.cc:2460:15:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				int len = strlen(buf);
data/exult-1.6/mapedit/shapelst.cc:2473:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					int len = strlen(buf);
data/exult-1.6/mapedit/studio.cc:596:3:  [1] (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 character.
		strcpy(path, ".");
data/exult-1.6/mapedit/studio.cc:852:27:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	const char *eptr = dir + strlen(dir) - 1;
data/exult-1.6/mapedit/studio.cc:1361:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				int flen = strlen(fname);
data/exult-1.6/mapedit/studio.cc:1363:82:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				if (!strcmp(fname, ".") || !strcmp(fname, "..") || strcasecmp(fname + flen - strlen(ext), ext) != 0)
data/exult-1.6/mapedit/studio.cc:1378:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				int flen = strlen(fname);
data/exult-1.6/mapedit/studio.cc:1380:82:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				if (!strcmp(fname, ".") || !strcmp(fname, "..") || strcasecmp(fname + flen - strlen(ext), ext) != 0)
data/exult-1.6/mapedit/studio.cc:1689:37:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	gtk_editable_insert_text(ed, text, strlen(text), &pos);
data/exult-1.6/mapedit/studio.cc:2638:40:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	            sizeof(addr.sun_family) + strlen(addr.sun_path) + 1) == -1) {
data/exult-1.6/mapedit/studio.cc:2825:25:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	for (size_t i = 0; i < strlen(menustr.c_str()); i++)
data/exult-1.6/mapedit/tools/smooth/config.c:57:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		line_length = strlen(line);
data/exult-1.6/mapedit/tools/smooth/config.c:83:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				strncpy(line, line + 1, line_length - 3); // what's between the '[' and the ']'
data/exult-1.6/mapedit/tools/smooth/config.c:120:10:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
					if (sscanf(line, "%6s", col) != 1 || strlen(col) != 6) { // just read 6 characters to prevent buffer overflow
data/exult-1.6/mapedit/tools/smooth/config.c:120:43:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					if (sscanf(line, "%6s", col) != 1 || strlen(col) != 6) { // just read 6 characters to prevent buffer overflow
data/exult-1.6/mapedit/tools/smooth/image.c:87:28:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	if (strncasecmp(img_out + strlen(img_out) - 4, ".bmp", 4)) { // img_out does not end in .bmp
data/exult-1.6/mapedit/tools/smooth/param.c:32:34:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	return(!strncmp(val, "-", 1) && strlen(val) == 2);
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_randomize.c:50:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int i, size = strlen(line);
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_smooth.c:67:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int i, size = strlen(line);
data/exult-1.6/mapedit/tools/smooth/plugins/plugin_stream.c:65:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int i, size = strlen(line);
data/exult-1.6/mapedit/u7shp.c:250:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/mapedit/u7shp.c:256:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/mapedit/u7shp.c:257:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b1 = fgetc(f);
data/exult-1.6/mapedit/u7shp.c:265:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/mapedit/u7shp.c:266:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b1 = fgetc(f);
data/exult-1.6/mapedit/u7shp.c:276:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/mapedit/u7shp.c:277:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b1 = fgetc(f);
data/exult-1.6/mapedit/u7shp.c:278:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b2 = fgetc(f);
data/exult-1.6/mapedit/u7shp.c:279:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b3 = fgetc(f);
data/exult-1.6/mapedit/ucbrowse.cc:321:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	symtbl.read(in);
data/exult-1.6/mapedit/uniquepal.c:39:28:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
	for (c2 = 0; c2 < 256 && !equal; c2++)
data/exult-1.6/mapedit/uniquepal.c:42:10:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
	return !equal;
data/exult-1.6/mapedit/uniquepal.c:68:9:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		tmp = getc(fp);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:164:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = std::strlen(p);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:242:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				std::strncpy(p, si_pathdef, MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:252:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				std::strncpy(lpszValue, bg_pathdef, MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:260:9:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			std::strncpy(lpszValue, bg_pathdef, MAX_STRLEN);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:270:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int len = std::strlen(lpszValue);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:314:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			int slen = std::strlen(si_sfx);
data/exult-1.6/msvc9/exconfig/exconfig.cpp:315:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			slen -= std::strlen("jmsfxsi.flx");
data/exult-1.6/msvc9/exconfig/exconfig.cpp:319:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				std::strncpy(fixed, si_sfx, slen);
data/exult-1.6/msvc9/msvc_kludges.h:133:12:  [1] (buffer) wcslen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::wcslen;
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:164:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = std::strlen(p);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:242:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				std::strncpy(p, si_pathdef, MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:252:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				std::strncpy(lpszValue, bg_pathdef, MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:260:9:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			std::strncpy(lpszValue, bg_pathdef, MAX_STRLEN);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:270:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int len = std::strlen(lpszValue);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:314:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			int slen = std::strlen(si_sfx);
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:315:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			slen -= std::strlen("jmsfxsi.flx");
data/exult-1.6/msvcstuff/exconfig/exconfig.cpp:319:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				std::strncpy(fixed, si_sfx, slen);
data/exult-1.6/msvcstuff/msvc_kludges.h:142:12:  [1] (buffer) wcslen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::wcslen;
data/exult-1.6/opengl/model3ds.cc:71:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(v, sizeof(v));
data/exult-1.6/opengl/model3ds.cc:76:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(v, sizeof(v));
data/exult-1.6/opengl/model3ds.cc:87:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(v, sizeof(v));
data/exult-1.6/opengl/model3ds.cc:103:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(header, sizeof(header));
data/exult-1.6/opengl/model3ds.cc:216:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.seekg(len - read, ios::cur);
data/exult-1.6/opengl/model3ds.cc:220:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		top_read += read;   // Add to top's total.
data/exult-1.6/opengl/model3ds.cc:246:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.read(c, 3);
data/exult-1.6/opengl/model3ds.cc:252:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.seekg(len - read, ios::cur);
data/exult-1.6/opengl/model3ds.cc:255:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		top_read += read;   // Add to top's total.
data/exult-1.6/opengl/model3ds.cc:282:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.seekg(len - read, ios::cur); //+++++++
data/exult-1.6/opengl/model3ds.cc:314:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.seekg(len - read, ios::cur);
data/exult-1.6/opengl/model3ds.cc:318:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		top_read += read;   // Add to top's total.
data/exult-1.6/opengl/model3ds.cc:364:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.seekg(len - read, ios::cur);
data/exult-1.6/opengl/model3ds.cc:368:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		top_read += read;   // Add to top's total.
data/exult-1.6/opengl/model3ds.cc:457:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			in.seekg(len - read, ios::cur);
data/exult-1.6/opengl/model3ds.cc:461:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		top_read += read;   // Add to top's total.
data/exult-1.6/readnpcs.cc:62:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		main_actor->read(&nfile, 0, false, fix_unused);
data/exult-1.6/readnpcs.cc:81:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		npcs[i]->read(&nfile, i, i < num_npcs1, fix_unused);
data/exult-1.6/readnpcs.cc:109:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			act->read(&nfile, -1, false, fix_unused);
data/exult-1.6/readnpcs.cc:219:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			sfile.read(reinterpret_cast<char *>(ent), 4);
data/exult-1.6/readnpcs.cc:224:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			sfile.read(reinterpret_cast<char *>(ent), 8);
data/exult-1.6/readnpcs.cc:270:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			sfile.read(nm, sz);
data/exult-1.6/readnpcs.cc:320:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			total += 2 + strlen(*it);
data/exult-1.6/readnpcs.cc:324:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			int len = strlen(*it);
data/exult-1.6/server/objserial.cc:43:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = std::strlen(str);     // Get length.
data/exult-1.6/server/servemsg.cc:90:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int len = read(socket, buf, 2); // Get magic.
data/exult-1.6/server/servemsg.cc:103:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if (read(socket, buf, 3) != 3) {
data/exult-1.6/server/servemsg.cc:115:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	datalen = read(socket, data, dlen); // Read data.
data/exult-1.6/server/server.cc:157:38:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		         sizeof(addr.sun_family) + strlen(addr.sun_path) + 1) == -1 ||
data/exult-1.6/server/server.cc:425:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			wptr += strlen(reinterpret_cast<char *>(wptr)) + 1;
data/exult-1.6/server/servewin32.cc:90:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int read(int file, void *v, unsigned int len) {
data/exult-1.6/server/servewin32.h:33:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int read(int file, void *v, unsigned int len);
data/exult-1.6/shapeid.cc:259:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		fin.read(reinterpret_cast<char *>(blends), nblends * 4);
data/exult-1.6/shapeid.cc:275:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		fin.read(reinterpret_cast<char *>(blends), nblends * 4);
data/exult-1.6/shapes/data_utils.h:257:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(const char *fname, bool patch, Exult_Game game) {
data/exult-1.6/shapes/data_utils.h:266:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(Exult_Game game, int resource) {
data/exult-1.6/shapes/data_utils.h:440:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in.read(reinterpret_cast<char *>(&(info.*data)), sizeof(T));
data/exult-1.6/shapes/data_utils.h:454:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in.read(reinterpret_cast<char *>(&(info.*data1)), sizeof(T1));
data/exult-1.6/shapes/data_utils.h:455:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in.read(reinterpret_cast<char *>(&(info.*data2)), sizeof(T2));
data/exult-1.6/shapes/data_utils.h:469:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		if (!cls->read(in, version, game)) {
data/exult-1.6/shapes/data_utils.h:499:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		cls.read(in, version, game);
data/exult-1.6/shapes/fontgen.cc:230:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(logfont.lfFaceName, famname, LF_FACESIZE - 1);
data/exult-1.6/shapes/items.cc:251:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		items.read(newitem, itemlen);
data/exult-1.6/shapes/shapeinf/ammoinf.cc:78:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Ammo_info::read(
data/exult-1.6/shapes/shapeinf/ammoinf.cc:85:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(reinterpret_cast<char *>(buf), sizeof(buf));
data/exult-1.6/shapes/shapeinf/ammoinf.h:63:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/aniinf.cc:37:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Animation_info::read(
data/exult-1.6/shapes/shapeinf/aniinf.h:65:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/armorinf.cc:45:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Armor_info::read(
data/exult-1.6/shapes/shapeinf/armorinf.cc:52:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(reinterpret_cast<char *>(buf), sizeof(buf));
data/exult-1.6/shapes/shapeinf/armorinf.h:44:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/bodyinf.cc:31:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Body_info::read(
data/exult-1.6/shapes/shapeinf/bodyinf.h:46:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/continf.cc:31:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Content_rules::read(
data/exult-1.6/shapes/shapeinf/continf.h:55:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/effhpinf.cc:31:25:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Effective_hp_info::read(
data/exult-1.6/shapes/shapeinf/effhpinf.h:56:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/expinf.cc:31:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Explosion_info::read(
data/exult-1.6/shapes/shapeinf/expinf.h:46:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/frflags.cc:31:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Frame_flags_info::read(
data/exult-1.6/shapes/shapeinf/frflags.h:90:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/frnameinf.cc:31:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Frame_name_info::read(
data/exult-1.6/shapes/shapeinf/frnameinf.h:59:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/frusefun.cc:31:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Frame_usecode_info::read(
data/exult-1.6/shapes/shapeinf/frusefun.h:61:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/monstinf.cc:41:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Monster_info::read(
data/exult-1.6/shapes/shapeinf/monstinf.cc:48:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(reinterpret_cast<char *>(buf), sizeof(buf));
data/exult-1.6/shapes/shapeinf/monstinf.h:132:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/npcdollinf.cc:31:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Paperdoll_npc::read(
data/exult-1.6/shapes/shapeinf/npcdollinf.h:59:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/objdollinf.cc:31:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Paperdoll_item::read(
data/exult-1.6/shapes/shapeinf/objdollinf.h:74:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/sfxinf.cc:31:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool SFX_info::read(
data/exult-1.6/shapes/shapeinf/sfxinf.h:50:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/warminf.cc:31:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Warmth_info::read(
data/exult-1.6/shapes/shapeinf/warminf.h:55:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapeinf/weaponinf.cc:105:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool Weapon_info::read(
data/exult-1.6/shapes/shapeinf/weaponinf.cc:112:5:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	in.read(reinterpret_cast<char *>(buf), sizeof(buf));
data/exult-1.6/shapes/shapeinf/weaponinf.h:93:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool read(std::istream &in, int version, Exult_Game game);
data/exult-1.6/shapes/shapevga.cc:402:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	weapon.read(WEAPONS, false, game);
data/exult-1.6/shapes/shapevga.cc:406:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ammo.read(AMMO, false, game);
data/exult-1.6/shapes/shapevga.cc:410:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	monstinf.read(MONSTERS, false, game);
data/exult-1.6/shapes/shapevga.cc:464:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			tfa.read(reinterpret_cast<char *>(&info[i].tfa[0]), 3);
data/exult-1.6/shapes/shapevga.cc:475:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		stfa.read(reinterpret_cast<char *>(buf), 512);
data/exult-1.6/shapes/shapevga.cc:528:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		occ.read(reinterpret_cast<char *>(occbits), sizeof(occbits));
data/exult-1.6/shapes/shapevga.cc:562:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	armor.read(ARMOR, false, game);
data/exult-1.6/shapes/shapevga.cc:563:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	armor.read(PATCH_ARMOR, true, game);
data/exult-1.6/shapes/shapevga.cc:568:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	weapon.read(WEAPONS, false, game);
data/exult-1.6/shapes/shapevga.cc:569:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	weapon.read(PATCH_WEAPONS, true, game);
data/exult-1.6/shapes/shapevga.cc:574:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ammo.read(AMMO, false, game);
data/exult-1.6/shapes/shapevga.cc:575:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ammo.read(PATCH_AMMO, true, game);
data/exult-1.6/shapes/shapevga.cc:580:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	monstinf.read(MONSTERS, false, game);
data/exult-1.6/shapes/shapevga.cc:581:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	monstinf.read(PATCH_MONSTERS, true, game);
data/exult-1.6/shapes/shapevga.cc:586:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		gump.read(game, game == BLACK_GATE ?
data/exult-1.6/shapes/shapevga.cc:589:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		gump.read(CONTAINER, false, game);
data/exult-1.6/shapes/shapevga.cc:590:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	gump.read(PATCH_CONTAINER, true, game);
data/exult-1.6/shapes/shapevga.cc:596:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ready.read(READY, false, game);
data/exult-1.6/shapes/shapevga.cc:597:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	ready.read(PATCH_READY, true, game);
data/exult-1.6/shapes/vgafile.cc:335:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
unsigned int Shape_frame::read(
data/exult-1.6/shapes/vgafile.cc:381:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	shapes->read(reinterpret_cast<char *>(data), c_num_tile_bytes);
data/exult-1.6/shapes/vgafile.cc:403:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	shapes->read(reinterpret_cast<char *>(data), len);
data/exult-1.6/shapes/vgafile.cc:806:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
Shape_frame *Shape::read(
data/exult-1.6/shapes/vgafile.cc:859:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int nframes = frame->read(shp, shapeoff, shapelen, framenum);
data/exult-1.6/shapes/vgafile.cc:1016:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	create_frames_list(frame->read(shape_source, location, shapelen, 0));
data/exult-1.6/shapes/vgafile.cc:1021:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		frame->read(shape_source, location, shapelen, i);
data/exult-1.6/shapes/vgafile.h:120:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	unsigned int read(IDataSource *shapes, uint32 shapeoff,
data/exult-1.6/shapes/vgafile.h:208:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	Shape_frame *read(std::vector<std::pair<IDataSource *, bool> > const &shapes, int shnum,
data/exult-1.6/shapes/vgafile.h:241:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		       read(shapes, shnum, frnum, counts, src);
data/exult-1.6/tools/expack.cc:374:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
						ifs.read(buf, fsize);
data/exult-1.6/tools/ipack.cc:54:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/tools/ipack.cc:97:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int namelen = strlen(basename) + strlen("SSSS_") + 1;
data/exult-1.6/tools/ipack.cc:97:35:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int namelen = strlen(basename) + strlen("SSSS_") + 1;
data/exult-1.6/tools/ipack.cc:412:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	char *txtpal = new char[strlen(palname) + 10];
data/exult-1.6/tools/ipack.cc:449:28:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	char *fullname = new char[strlen(basename) + 30];
data/exult-1.6/tools/ipack.cc:675:28:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	char *fullname = new char[strlen(basename) + 30];
data/exult-1.6/tools/rip.cc:41:6:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			s[strlen(s) - 1] = 0;
data/exult-1.6/tools/rip.cc:48:9:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				c = fgetc(fi2);
data/exult-1.6/tools/rip.cc:141:12:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					fputc(fgetc(fi), fo);
data/exult-1.6/tools/rip.cc:181:12:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					fputc(fgetc(fo), fi);   /* write. Without them they */
data/exult-1.6/tools/shp2pcx.cc:55:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/tools/shp2pcx.cc:95:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/tools/shp2pcx.cc:101:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/tools/shp2pcx.cc:102:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b1 = fgetc(f);
data/exult-1.6/tools/shp2pcx.cc:110:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/tools/shp2pcx.cc:111:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b1 = fgetc(f);
data/exult-1.6/tools/shp2pcx.cc:121:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/tools/shp2pcx.cc:122:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b1 = fgetc(f);
data/exult-1.6/tools/shp2pcx.cc:123:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b2 = fgetc(f);
data/exult-1.6/tools/shp2pcx.cc:124:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b3 = fgetc(f);
data/exult-1.6/tools/shp2pcx.cc:426:6:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	if (strlen(outprefix) > 128) {
data/exult-1.6/tools/splitshp.cc:36:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/tools/splitshp.cc:55:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/tools/splitshp.cc:61:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/tools/splitshp.cc:62:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b1 = fgetc(f);
data/exult-1.6/tools/splitshp.cc:69:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/tools/splitshp.cc:70:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b1 = fgetc(f);
data/exult-1.6/tools/splitshp.cc:80:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b0 = fgetc(f);
data/exult-1.6/tools/splitshp.cc:81:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b1 = fgetc(f);
data/exult-1.6/tools/splitshp.cc:82:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b2 = fgetc(f);
data/exult-1.6/tools/splitshp.cc:83:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	b3 = fgetc(f);
data/exult-1.6/tools/splitshp.cc:95:22:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	char *fn = new char[strlen(shapefilename) + 5]; //_xxx\0
data/exult-1.6/tools/splitshp.cc:105:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		dotpos = strlen(shapefilename);
data/exult-1.6/tools/u7voice2syx.cc:323:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				ds.read(sysex_buffer + 8, timbre_mem_size);
data/exult-1.6/tools/wuc.cc:76:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	if (token[strlen(token) - 1] == ':')
data/exult-1.6/tools/wuc.cc:77:9:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		token[strlen(token) - 1] = 0;
data/exult-1.6/tools/wuc.cc:129:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		c = fgetc(fi);
data/exult-1.6/tools/wuc.cc:137:16:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			while ((c = fgetc(fi)) != '\n') /* do nothing */ ;
data/exult-1.6/tools/wuc.cc:141:16:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			while ((c = fgetc(fi)) != '\n') {
data/exult-1.6/tools/wuc.cc:151:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		c = fgetc(fi);
data/exult-1.6/tools/wuc.cc:203:8:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (strlen(token) > 1 && token[strlen(token) - 1] == ':') {
data/exult-1.6/tools/wuc.cc:203:35:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (strlen(token) > 1 && token[strlen(token) - 1] == ':') {
data/exult-1.6/tools/wuc.cc:204:11:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				token[strlen(token) - 1] = 0; // remove trailing ':'
data/exult-1.6/tools/wuc.cc:249:22:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					for (i = 1; i < strlen(token); i++)
data/exult-1.6/txtscroll.cc:48:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/txtscroll.cc:109:23:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	char *txt = new char[strlen(ptr) + 1];
data/exult-1.6/usecode/compiler/ucfun.cc:44:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/usecode/compiler/ucfun.cc:392:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int textlen = strlen(text) + 1; // Got to include ending null.
data/exult-1.6/usecode/compiler/ucfun.cc:416:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = strlen(text);
data/exult-1.6/usecode/compiler/ucloc.cc:35:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/usecode/compiler/ucloc.cc:62:13:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int len = strlen(s);
data/exult-1.6/usecode/compiler/ucmain.cc:45:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/usecode/compiler/ucmain.cc:90:14:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			outname = strncpy(outbuf, src, sizeof(outbuf) - 5);
data/exult-1.6/usecode/compiler/ucmain.cc:94:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				dot = outname + strlen(outname);
data/exult-1.6/usecode/intrinsics.cc:1698:61:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	bool do_serp = gwin->get_main_actor()->get_flag(Obj_flags::read) == false;
data/exult-1.6/usecode/intrinsics.cc:3331:22:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			spec = fmt + std::strlen(fmt);
data/exult-1.6/usecode/keyring.cc:33:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void Keyring::read() {
data/exult-1.6/usecode/keyring.h:28:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read();  // read from KEYRING.DAT
data/exult-1.6/usecode/ucdisasm.cc:31:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/usecode/ucdisasm.cc:87:7:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (strlen(pdesc->mnemonic) < 4)
data/exult-1.6/usecode/ucdisasm.cc:118:10:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			len = strlen(pstr);
data/exult-1.6/usecode/ucdisasm.cc:124:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (len < strlen(pstr))
data/exult-1.6/usecode/ucfunction.cc:56:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	file.read(reinterpret_cast<char *>(code), len);
data/exult-1.6/usecode/ucinternal.cc:102:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/usecode/ucinternal.cc:448:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = String ? strlen(String) : 0;
data/exult-1.6/usecode/ucinternal.cc:449:9:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	len += strlen(str);
data/exult-1.6/usecode/ucinternal.cc:1821:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		symtbl->read(file);
data/exult-1.6/usecode/ucinternal.cc:3201:19:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				nfile->write2(strlen(nm));
data/exult-1.6/usecode/ucinternal.cc:3202:22:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				nfile->write(nm, strlen(nm));
data/exult-1.6/usecode/ucinternal.cc:3227:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void Usecode_internal::read(
data/exult-1.6/usecode/ucinternal.cc:3230:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		keyring->read();    // read keyring data
data/exult-1.6/usecode/ucinternal.cc:3242:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in.read(reinterpret_cast<char *>(gflags), filesize);
data/exult-1.6/usecode/ucinternal.cc:3314:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			nfile.read(nm, len);
data/exult-1.6/usecode/ucinternal.h:498:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	virtual void read();        // Read in 'gamedat/usecode.dat'.
data/exult-1.6/usecode/ucmachine.h:102:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	virtual void read() = 0;    // Read in 'gamedat/usecode.dat'.
data/exult-1.6/usecode/ucsymtbl.cc:46:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void Usecode_scope_symbol::read(istream &in) {
data/exult-1.6/usecode/ucsymtbl.cc:60:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			s->read(in);
data/exult-1.6/usecode/ucsymtbl.cc:93:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		out.write(nm, strlen(nm) + 1);
data/exult-1.6/usecode/ucsymtbl.cc:208:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void Usecode_class_symbol::read(istream &in) {
data/exult-1.6/usecode/ucsymtbl.cc:209:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	Usecode_scope_symbol::read(in);
data/exult-1.6/usecode/ucsymtbl.h:96:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(std::istream &in);
data/exult-1.6/usecode/ucsymtbl.h:137:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(std::istream &in);
data/exult-1.6/usecode/ucxt/src/ucdata.cc:95:45:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (stopstr - argv[i] < static_cast<int>(strlen(argv[i])))
data/exult-1.6/usecode/ucxt/src/ucdata.cc:352:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		_symtbl->read(_file);
data/exult-1.6/usecode/useval.cc:47:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
using std::strlen;
data/exult-1.6/usecode/useval.cc:414:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			unsigned int newlen = strlen(v2.get_str_value()) + 32;
data/exult-1.6/usecode/useval.cc:427:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			unsigned int newlen = strlen(v1.get_str_value()) + 32;
data/exult-1.6/usecode/useval.cc:435:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			unsigned int newlen = strlen(v1.get_str_value()) +
data/exult-1.6/usecode/useval.cc:436:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			                      strlen(v2.get_str_value()) + 32;
data/exult-1.6/usecode/useval.cc:489:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			unsigned int newlen = strlen(v1.get_str_value()) +
data/exult-1.6/usecode/useval.cc:490:26:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			                      strlen(v2.get_str_value()) + 32;
data/exult-1.6/usecode/useval.cc:539:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int len = std::strlen(classname);
data/exult-1.6/usecode/useval.cc:545:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int len = std::strlen(value.str);
data/exult-1.6/usecode/useval.cc:589:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in->read(nm, len);
data/exult-1.6/usecode/useval.cc:598:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		in->read(value.str, len);
data/exult-1.6/win32/exconfig.cc:191:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	int len = std::strlen(p);
data/exult-1.6/win32/exconfig.cc:224:20:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant string.
	if (network) std::strncat(p, "\\\\", max_strlen);
data/exult-1.6/win32/exconfig.cc:226:12:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant character.
	else std::strncat(p, "\\", max_strlen);
data/exult-1.6/win32/exconfig.cc:230:8:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings.
		std::strncat(p, d->name, max_strlen);
data/exult-1.6/win32/exconfig.cc:232:15:  [1] (buffer) strncat:
  Easily used incorrectly (e.g., incorrectly computing the correct maximum
  size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf,
  or automatically resizing strings. Risk is low because the source is a
  constant character.
		if (d) std::strncat(p, "\\", max_strlen);
data/exult-1.6/win32/exconfig.cc:254:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int p_size = strlen(ExultDir) + strlen("/exult.cfg") + MAX_STRLEN;
data/exult-1.6/win32/exconfig.cc:254:35:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int p_size = strlen(ExultDir) + strlen("/exult.cfg") + MAX_STRLEN;
data/exult-1.6/win32/exconfig.cc:285:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				std::strncpy(SIPath, si_pathdef, MaxPath);
data/exult-1.6/win32/exconfig.cc:295:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				std::strncpy(BGPath, bg_pathdef, MaxPath);
data/exult-1.6/win32/exconfig.cc:298:9:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			std::strncpy(BGPath, bg_pathdef, MaxPath);
data/exult-1.6/win32/exconfig.cc:299:9:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			std::strncpy(SIPath, si_pathdef, MaxPath);
data/exult-1.6/win32/exconfig.cc:315:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int p_size = strlen(ExultDir) + strlen("/exult.cfg") + MAX_STRLEN;
data/exult-1.6/win32/exconfig.cc:315:35:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		int p_size = strlen(ExultDir) + strlen("/exult.cfg") + MAX_STRLEN;
data/exult-1.6/win32/exconfig.cc:352:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			int slen = std::strlen(si_sfx);
data/exult-1.6/win32/exconfig.cc:353:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			slen -= std::strlen("jmsfxsi.flx");
data/exult-1.6/win32/exconfig.cc:357:10:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				std::strncpy(fixed, si_sfx, slen);

ANALYSIS SUMMARY:

Hits = 1486
Lines analyzed = 218507 in approximately 5.13 seconds (42563 lines/second)
Physical Source Lines of Code (SLOC) = 159884
Hits@level = [0] 453 [1] 501 [2] 734 [3]  29 [4] 206 [5]  16
Hits@level+ = [0+] 1939 [1+] 1486 [2+] 985 [3+] 251 [4+] 222 [5+]  16
Hits/KSLOC@level+ = [0+] 12.1275 [1+] 9.29424 [2+] 6.16072 [3+] 1.56989 [4+] 1.38851 [5+] 0.100073
Dot directories skipped = 2 (--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.