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/octave-instrument-control-0.6.0/src/gpib/__gpib_clrdevice__.cc
Examining data/octave-instrument-control-0.6.0/src/gpib/__gpib_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/gpib/__gpib_spoll__.cc
Examining data/octave-instrument-control-0.6.0/src/gpib/__gpib_trigger__.cc
Examining data/octave-instrument-control-0.6.0/src/gpib/gpib.cc
Examining data/octave-instrument-control-0.6.0/src/gpib/gpib_class.cc
Examining data/octave-instrument-control-0.6.0/src/gpib/gpib_class.h
Examining data/octave-instrument-control-0.6.0/src/gpib/gpib_close.cc
Examining data/octave-instrument-control-0.6.0/src/gpib/gpib_read.cc
Examining data/octave-instrument-control-0.6.0/src/gpib/gpib_timeout.cc
Examining data/octave-instrument-control-0.6.0/src/gpib/gpib_write.cc
Examining data/octave-instrument-control-0.6.0/src/hwinfo/__instr_hwinfo__.cc
Examining data/octave-instrument-control-0.6.0/src/i2c/__i2c_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/i2c/__i2c_properties__.cc
Examining data/octave-instrument-control-0.6.0/src/i2c/i2c.cc
Examining data/octave-instrument-control-0.6.0/src/i2c/i2c_addr.cc
Examining data/octave-instrument-control-0.6.0/src/i2c/i2c_class.cc
Examining data/octave-instrument-control-0.6.0/src/i2c/i2c_class.h
Examining data/octave-instrument-control-0.6.0/src/i2c/i2c_close.cc
Examining data/octave-instrument-control-0.6.0/src/i2c/i2c_read.cc
Examining data/octave-instrument-control-0.6.0/src/i2c/i2c_write.cc
Examining data/octave-instrument-control-0.6.0/src/oct-alt-includes.h
Examining data/octave-instrument-control-0.6.0/src/parallel/__parallel_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/parallel/parallel.cc
Examining data/octave-instrument-control-0.6.0/src/parallel/parallel_class.cc
Examining data/octave-instrument-control-0.6.0/src/parallel/parallel_class.h
Examining data/octave-instrument-control-0.6.0/src/parallel/pp_close.cc
Examining data/octave-instrument-control-0.6.0/src/parallel/pp_ctrl.cc
Examining data/octave-instrument-control-0.6.0/src/parallel/pp_data.cc
Examining data/octave-instrument-control-0.6.0/src/parallel/pp_datadir.cc
Examining data/octave-instrument-control-0.6.0/src/parallel/pp_stat.cc
Examining data/octave-instrument-control-0.6.0/src/resolvehost/resolvehost.cc
Examining data/octave-instrument-control-0.6.0/src/serial/__serial_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/serial/__srl_properties__.cc
Examining data/octave-instrument-control-0.6.0/src/serial/serial.cc
Examining data/octave-instrument-control-0.6.0/src/serial/serial_class.cc
Examining data/octave-instrument-control-0.6.0/src/serial/serial_class.h
Examining data/octave-instrument-control-0.6.0/src/serial/serial_class_lin.cc
Examining data/octave-instrument-control-0.6.0/src/serial/serial_class_lin.h
Examining data/octave-instrument-control-0.6.0/src/serial/serial_class_win32.cc
Examining data/octave-instrument-control-0.6.0/src/serial/serial_class_win32.h
Examining data/octave-instrument-control-0.6.0/src/serial/srl_read.cc
Examining data/octave-instrument-control-0.6.0/src/serial/srl_write.cc
Examining data/octave-instrument-control-0.6.0/src/serialport/__serialport_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/serialport/__srlp_properties__.cc
Examining data/octave-instrument-control-0.6.0/src/serialport/__srlp_read__.cc
Examining data/octave-instrument-control-0.6.0/src/serialport/__srlp_write__.cc
Examining data/octave-instrument-control-0.6.0/src/serialport/serialport.cc
Examining data/octave-instrument-control-0.6.0/src/serialport/serialport_class.cc
Examining data/octave-instrument-control-0.6.0/src/serialport/serialport_class.h
Examining data/octave-instrument-control-0.6.0/src/serialport/serialport_class_lin.cc
Examining data/octave-instrument-control-0.6.0/src/serialport/serialport_class_lin.h
Examining data/octave-instrument-control-0.6.0/src/serialport/serialport_class_win32.cc
Examining data/octave-instrument-control-0.6.0/src/serialport/serialport_class_win32.h
Examining data/octave-instrument-control-0.6.0/src/spi/__spi_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/spi/__spi_properties__.cc
Examining data/octave-instrument-control-0.6.0/src/spi/spi.cc
Examining data/octave-instrument-control-0.6.0/src/spi/spi_class.cc
Examining data/octave-instrument-control-0.6.0/src/spi/spi_class.h
Examining data/octave-instrument-control-0.6.0/src/spi/spi_close.cc
Examining data/octave-instrument-control-0.6.0/src/spi/spi_read.cc
Examining data/octave-instrument-control-0.6.0/src/spi/spi_write.cc
Examining data/octave-instrument-control-0.6.0/src/spi/spi_writeAndRead.cc
Examining data/octave-instrument-control-0.6.0/src/tcp/__tcp_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/tcp/tcp_class.cc
Examining data/octave-instrument-control-0.6.0/src/tcp/tcp_class.h
Examining data/octave-instrument-control-0.6.0/src/tcp/tcp.cc
Examining data/octave-instrument-control-0.6.0/src/tcp/tcp_close.cc
Examining data/octave-instrument-control-0.6.0/src/tcp/tcp_read.cc
Examining data/octave-instrument-control-0.6.0/src/tcp/tcp_write.cc
Examining data/octave-instrument-control-0.6.0/src/tcp/__tcp_properties__.cc
Examining data/octave-instrument-control-0.6.0/src/tcp/tcp_timeout.cc
Examining data/octave-instrument-control-0.6.0/src/udp/__udp_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/udp/__udp_properties__.cc
Examining data/octave-instrument-control-0.6.0/src/udp/udp.cc
Examining data/octave-instrument-control-0.6.0/src/udp/udp_class.cc
Examining data/octave-instrument-control-0.6.0/src/udp/udp_class.h
Examining data/octave-instrument-control-0.6.0/src/udp/udp_close.cc
Examining data/octave-instrument-control-0.6.0/src/udp/udp_read.cc
Examining data/octave-instrument-control-0.6.0/src/udp/udp_timeout.cc
Examining data/octave-instrument-control-0.6.0/src/udp/udp_write.cc
Examining data/octave-instrument-control-0.6.0/src/undef-ah-octave.h
Examining data/octave-instrument-control-0.6.0/src/usbtmc/__usbtmc_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc.cc
Examining data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_class.cc
Examining data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_class.h
Examining data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_close.cc
Examining data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_read.cc
Examining data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_write.cc
Examining data/octave-instrument-control-0.6.0/src/vxi11/__vxi11_pkg_lock__.cc
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11.cc
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11.h
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.cc
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.h
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11_clnt.c
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11_close.cc
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11_read.cc
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11_svc.c
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11_write.cc
Examining data/octave-instrument-control-0.6.0/src/vxi11/vxi11_xdr.c

FINAL RESULTS:

data/octave-instrument-control-0.6.0/src/gpib/gpib.cc:102: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).
  retval->open (minor, gpibid, secid, timeout, send_eoi, eos_mode);
data/octave-instrument-control-0.6.0/src/gpib/gpib_class.cc:84: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).
octave_gpib::open (int minor, int gpibid, int sad, int timeout, int send_eoi, int eos_mode)
data/octave-instrument-control-0.6.0/src/gpib/gpib_class.h:40: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).
  int open(int, int, int, int, int, int);
data/octave-instrument-control-0.6.0/src/i2c/i2c.cc:106: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).
  if (retval->open (path, oflags) < 0)
data/octave-instrument-control-0.6.0/src/i2c/i2c_class.cc:107: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).
octave_i2c::open (const std::string &path, int flags)
data/octave-instrument-control-0.6.0/src/i2c/i2c_class.cc:112: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).
  fd = ::open (path.c_str (), flags, 0);
data/octave-instrument-control-0.6.0/src/i2c/i2c_class.h:29: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).
  int open (const std::string& /* path */, int /* open flags */);
data/octave-instrument-control-0.6.0/src/parallel/parallel.cc:113: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).
  if (retval->open (path, oflags) < 0)
data/octave-instrument-control-0.6.0/src/parallel/parallel_class.cc:83: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).
octave_parallel::open (string path, int flags)
data/octave-instrument-control-0.6.0/src/parallel/parallel_class.cc:85: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).
  this->fd = ::open (path.c_str (), flags, 0);
data/octave-instrument-control-0.6.0/src/parallel/parallel_class.h:32: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).
  int open (string /* path */, int /* open flags */);
data/octave-instrument-control-0.6.0/src/resolvehost/resolvehost.cc:165: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.
        memcpy (&in.sin_addr, hostinfo->h_addr_list[0], hostinfo->h_length);
data/octave-instrument-control-0.6.0/src/resolvehost/resolvehost.cc:177: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 name[1025];
data/octave-instrument-control-0.6.0/src/serial/serial.cc:141: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).
  retval->open (path);
data/octave-instrument-control-0.6.0/src/serial/serial_class_lin.cc:59: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).
octave_serial::open (const std::string &path)
data/octave-instrument-control-0.6.0/src/serial/serial_class_lin.cc:66: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).
  fd = ::open (path.c_str (), flags);
data/octave-instrument-control-0.6.0/src/serial/serial_class_lin.h:34: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).
  void open(const std::string& /* path */);
data/octave-instrument-control-0.6.0/src/serial/serial_class_win32.cc:48:6:  [2] (buffer) wchar_t:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
     wchar_t errstring[100+1];
data/octave-instrument-control-0.6.0/src/serial/serial_class_win32.cc:57: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 errstring[100+1];
data/octave-instrument-control-0.6.0/src/serial/serial_class_win32.cc:91: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).
octave_serial::open (const std::string &path)
data/octave-instrument-control-0.6.0/src/serial/serial_class_win32.h:34: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).
  void open(const std::string& /* path */);
data/octave-instrument-control-0.6.0/src/serialport/serialport.cc:228: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).
  retval->open (path);
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_lin.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).
octave_serialport::open (const std::string &path)
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_lin.cc:60: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).
  fd = ::open (path.c_str (), flags);
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_lin.h:33: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).
  void open(const std::string& /* path */);
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_win32.cc:47:6:  [2] (buffer) wchar_t:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
     wchar_t errstring[100+1];
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_win32.cc:56: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 errstring[100+1];
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_win32.cc:84: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).
octave_serialport::open (const std::string &path)
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_win32.h:33: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).
  void open(const std::string& /* path */);
data/octave-instrument-control-0.6.0/src/spi/spi.cc:179: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).
  if (retval->open (path, oflags) < 0)
data/octave-instrument-control-0.6.0/src/spi/spi_class.cc:100: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).
octave_spi::open (const std::string &path, int flags)
data/octave-instrument-control-0.6.0/src/spi/spi_class.cc:105: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).
  fd = ::open (path.c_str (), flags, 0);
data/octave-instrument-control-0.6.0/src/spi/spi_class.h:31: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).
  int open (const std::string& /* path */, int /* open flags */);
data/octave-instrument-control-0.6.0/src/tcp/tcp.cc:190: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).
  if (retval->open (address, port) < 0)
data/octave-instrument-control-0.6.0/src/tcp/tcp_class.cc:188: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).
octave_tcp::open (const std::string &address, int port)
data/octave-instrument-control-0.6.0/src/tcp/tcp_class.h:43: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).
  int open (const std::string &, int);
data/octave-instrument-control-0.6.0/src/udp/udp.cc:180: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).
  if (retval->open(address, port, localport) < 0)
data/octave-instrument-control-0.6.0/src/udp/udp_class.cc:102: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(&in->sin_addr, host->h_addr_list[0], host->h_length);
data/octave-instrument-control-0.6.0/src/udp/udp_class.cc:206: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).
octave_udp::open (const std::string &address, int port, int localport)
data/octave-instrument-control-0.6.0/src/udp/udp_class.h:43: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).
  int open (const std::string &address, int port, int localport);
data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc.cc:77: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).
  if (retval->open (path, oflags) < 0)
data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_class.cc:78: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).
octave_usbtmc::open (const std::string &path, int flags)
data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_class.cc:80: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).
  fd = ::open (path.c_str (), flags, 0);
data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_class.h:30: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).
  int open(const std::string&, int);
data/octave-instrument-control-0.6.0/src/vxi11/vxi11.cc:74: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).
  if (retval->open (path) < 0)
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.cc:87: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).
octave_vxi11::open (string ip)
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.cc:241: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 (send_cmd, buf, len);
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.cc:339: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 tmpip[256];
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.cc:382: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 tmpip[256];
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.h:35: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).
    int open (string);
data/octave-instrument-control-0.6.0/src/gpib/gpib_class.cc:97:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_gpib::read (uint8_t *buf, unsigned int len, bool *eoi)
data/octave-instrument-control-0.6.0/src/gpib/gpib_class.h:34:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read(uint8_t*, unsigned int, bool*);
data/octave-instrument-control-0.6.0/src/gpib/gpib_read.cc:83:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int bytes_read = gpib->read (buffer, buffer_len, &eoi);
data/octave-instrument-control-0.6.0/src/i2c/i2c_class.cc:159:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_i2c::read (uint8_t *buf, unsigned int len)
data/octave-instrument-control-0.6.0/src/i2c/i2c_class.cc:170:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  retval = ::read (get_fd (), buf, len);
data/octave-instrument-control-0.6.0/src/i2c/i2c_class.h:45:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read (uint8_t* /* buffer */, unsigned int /* buffer size */);
data/octave-instrument-control-0.6.0/src/i2c/i2c_read.cc:84:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  retval = i2c->read (buffer, buffer_len);
data/octave-instrument-control-0.6.0/src/serial/serial_class_lin.cc:125:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_serial::read (uint8_t *buf, unsigned int len)
data/octave-instrument-control-0.6.0/src/serial/serial_class_lin.cc:142:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      read_retval = ::read (fd, (void *)(buf + bytes_read), len - bytes_read);
data/octave-instrument-control-0.6.0/src/serial/serial_class_lin.h:32:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read(uint8_t* /* buffer */, unsigned int /* buffer size */);
data/octave-instrument-control-0.6.0/src/serial/serial_class_win32.cc:150:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_serial::read(uint8_t *buf, unsigned int len)
data/octave-instrument-control-0.6.0/src/serial/serial_class_win32.h:32:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read(uint8_t* /* buffer */, unsigned int /* buffer size */);
data/octave-instrument-control-0.6.0/src/serial/srl_read.cc:81:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int bytes_read = serial->read (buffer, buffer_len);
data/octave-instrument-control-0.6.0/src/serialport/__srlp_read__.cc:81:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int bytes_read = serial->read (buffer, buffer_len);
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_lin.cc:120:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_serialport::read (uint8_t *buf, unsigned int len)
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_lin.cc:138:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      read_retval = ::read (fd, (void *)(buf + bytes_read), len - bytes_read);
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_lin.h:31:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read(uint8_t* /* buffer */, unsigned int /* buffer size */);
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_win32.cc:143:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_serialport::read(uint8_t *buf, unsigned int len)
data/octave-instrument-control-0.6.0/src/serialport/serialport_class_win32.h:31:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read(uint8_t* /* buffer */, unsigned int /* buffer size */);
data/octave-instrument-control-0.6.0/src/spi/spi_class.cc:150:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_spi::read (uint8_t *buf, unsigned int len)
data/octave-instrument-control-0.6.0/src/spi/spi_class.h:53:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read (uint8_t* /* buffer */, unsigned int /* buffer size */);
data/octave-instrument-control-0.6.0/src/spi/spi_read.cc:83:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  retval = spi->read (buffer, buffer_len);
data/octave-instrument-control-0.6.0/src/tcp/tcp_class.cc:273:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_tcp::read (uint8_t *buf, unsigned int len, double readtimeout)
data/octave-instrument-control-0.6.0/src/tcp/tcp_class.cc:485:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
          while (read (tmpbuffer, 1024, 0) > 0) {}
data/octave-instrument-control-0.6.0/src/tcp/tcp_class.h:41:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read (uint8_t *, unsigned int, double);
data/octave-instrument-control-0.6.0/src/tcp/tcp_read.cc:100:25:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int bytes_read = tcp->read (buffer, buffer_len, timeout);
data/octave-instrument-control-0.6.0/src/udp/udp_class.cc:321:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_udp::read (uint8_t *buf, unsigned int len, double readtimeout)
data/octave-instrument-control-0.6.0/src/udp/udp_class.cc:555:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
          while (read (tmpbuffer, 1024, 0) > 0) {}
data/octave-instrument-control-0.6.0/src/udp/udp_class.h:41:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read (uint8_t *buf, unsigned int len, double readtimeout);
data/octave-instrument-control-0.6.0/src/udp/udp_read.cc:99:25:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int bytes_read = udp->read(buffer, buffer_len, timeout);
data/octave-instrument-control-0.6.0/src/udp/udp_read.cc:132:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
%! # does read wait
data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_class.cc:92:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_usbtmc::read (uint8_t *buf, unsigned int len)
data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_class.cc:100:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int retval = ::read (get_fd (), buf, len);
data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_class.h:36:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  int read(uint8_t*, unsigned int);
data/octave-instrument-control-0.6.0/src/usbtmc/usbtmc_read.cc:89:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  retval = usbtmc->read (buffer, buffer_len);
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.cc:104:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
octave_vxi11::read(char *buf, unsigned int len)
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.cc:340:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
  strncpy(tmpip, ip, 250);
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.cc:383:7:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
      strncpy(tmpip, ip, 250);
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_class.h:40:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read (char*, unsigned int);
data/octave-instrument-control-0.6.0/src/vxi11/vxi11_read.cc:82:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  retval = vxi11->read (buffer, buffer_len);

ANALYSIS SUMMARY:

Hits = 90
Lines analyzed = 16102 in approximately 0.35 seconds (46138 lines/second)
Physical Source Lines of Code (SLOC) = 10927
Hits@level = [0]  13 [1]  40 [2]  50 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+] 103 [1+]  90 [2+]  50 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 9.42619 [1+] 8.23648 [2+] 4.57582 [3+]   0 [4+]   0 [5+]   0
Dot directories skipped = 1 (--followdotdir overrides)
Minimum risk level = 1
Not every hit is necessarily a security vulnerability.
There may be other security vulnerabilities; review your code!
See 'Secure Programming HOWTO'
(https://dwheeler.com/secure-programs) for more information.