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/eris-1.3.23/Eris/Account.cpp
Examining data/eris-1.3.23/Eris/Account.h
Examining data/eris-1.3.23/Eris/Alarm.cpp
Examining data/eris-1.3.23/Eris/Alarm.h
Examining data/eris-1.3.23/Eris/Avatar.cpp
Examining data/eris-1.3.23/Eris/Avatar.h
Examining data/eris-1.3.23/Eris/BaseConnection.cpp
Examining data/eris-1.3.23/Eris/BaseConnection.h
Examining data/eris-1.3.23/Eris/Calendar.cpp
Examining data/eris-1.3.23/Eris/Calendar.h
Examining data/eris-1.3.23/Eris/CharacterType.cpp
Examining data/eris-1.3.23/Eris/CharacterType.h
Examining data/eris-1.3.23/Eris/Connection.cpp
Examining data/eris-1.3.23/Eris/Connection.h
Examining data/eris-1.3.23/Eris/CustomEntities.cpp
Examining data/eris-1.3.23/Eris/CustomEntities.h
Examining data/eris-1.3.23/Eris/DeleteLater.cpp
Examining data/eris-1.3.23/Eris/DeleteLater.h
Examining data/eris-1.3.23/Eris/Entity.cpp
Examining data/eris-1.3.23/Eris/Entity.h
Examining data/eris-1.3.23/Eris/EntityRef.cpp
Examining data/eris-1.3.23/Eris/EntityRef.h
Examining data/eris-1.3.23/Eris/EntityRouter.cpp
Examining data/eris-1.3.23/Eris/EntityRouter.h
Examining data/eris-1.3.23/Eris/Exceptions.cpp
Examining data/eris-1.3.23/Eris/Exceptions.h
Examining data/eris-1.3.23/Eris/Factory.cpp
Examining data/eris-1.3.23/Eris/Factory.h
Examining data/eris-1.3.23/Eris/IGRouter.cpp
Examining data/eris-1.3.23/Eris/IGRouter.h
Examining data/eris-1.3.23/Eris/Lobby.cpp
Examining data/eris-1.3.23/Eris/Lobby.h
Examining data/eris-1.3.23/Eris/Log.cpp
Examining data/eris-1.3.23/Eris/Log.h
Examining data/eris-1.3.23/Eris/LogStream.h
Examining data/eris-1.3.23/Eris/MetaQuery.cpp
Examining data/eris-1.3.23/Eris/MetaQuery.h
Examining data/eris-1.3.23/Eris/Metaserver.cpp
Examining data/eris-1.3.23/Eris/Metaserver.h
Examining data/eris-1.3.23/Eris/Operations.cpp
Examining data/eris-1.3.23/Eris/Operations.h
Examining data/eris-1.3.23/Eris/Person.cpp
Examining data/eris-1.3.23/Eris/Person.h
Examining data/eris-1.3.23/Eris/Poll.h
Examining data/eris-1.3.23/Eris/PollDefault.cpp
Examining data/eris-1.3.23/Eris/PollDefault.h
Examining data/eris-1.3.23/Eris/Redispatch.cpp
Examining data/eris-1.3.23/Eris/Redispatch.h
Examining data/eris-1.3.23/Eris/Response.cpp
Examining data/eris-1.3.23/Eris/Response.h
Examining data/eris-1.3.23/Eris/Room.cpp
Examining data/eris-1.3.23/Eris/Room.h
Examining data/eris-1.3.23/Eris/Router.cpp
Examining data/eris-1.3.23/Eris/Router.h
Examining data/eris-1.3.23/Eris/ServerInfo.cpp
Examining data/eris-1.3.23/Eris/ServerInfo.h
Examining data/eris-1.3.23/Eris/SpawnPoint.cpp
Examining data/eris-1.3.23/Eris/SpawnPoint.h
Examining data/eris-1.3.23/Eris/Task.cpp
Examining data/eris-1.3.23/Eris/Task.h
Examining data/eris-1.3.23/Eris/TerrainModObserver.cpp
Examining data/eris-1.3.23/Eris/TerrainModObserver.h
Examining data/eris-1.3.23/Eris/TerrainModTranslator.cpp
Examining data/eris-1.3.23/Eris/TerrainModTranslator.h
Examining data/eris-1.3.23/Eris/TimedEventService.cpp
Examining data/eris-1.3.23/Eris/TimedEventService.h
Examining data/eris-1.3.23/Eris/Timeout.cpp
Examining data/eris-1.3.23/Eris/Timeout.h
Examining data/eris-1.3.23/Eris/TransferInfo.cpp
Examining data/eris-1.3.23/Eris/TransferInfo.h
Examining data/eris-1.3.23/Eris/TypeBoundRedispatch.cpp
Examining data/eris-1.3.23/Eris/TypeBoundRedispatch.h
Examining data/eris-1.3.23/Eris/TypeInfo.cpp
Examining data/eris-1.3.23/Eris/TypeInfo.h
Examining data/eris-1.3.23/Eris/TypeService.cpp
Examining data/eris-1.3.23/Eris/TypeService.h
Examining data/eris-1.3.23/Eris/Types.cpp
Examining data/eris-1.3.23/Eris/Types.h
Examining data/eris-1.3.23/Eris/UIFactory.h
Examining data/eris-1.3.23/Eris/View.cpp
Examining data/eris-1.3.23/Eris/View.h
Examining data/eris-1.3.23/Eris/ViewEntity.cpp
Examining data/eris-1.3.23/Eris/ViewEntity.h
Examining data/eris-1.3.23/Eris/iround.h
Examining data/eris-1.3.23/bindings/polls/glib/PollGlib.h
Examining data/eris-1.3.23/bindings/polls/glib/PollGlibFD.h
Examining data/eris-1.3.23/bindings/polls/glib/PollGlibSource.h
Examining data/eris-1.3.23/bindings/polls/winsock/PollWinsock.h
Examining data/eris-1.3.23/bindings/polls/winsock/PollWinsock_impl.h
Examining data/eris-1.3.23/test/Account_integrationtest.cpp
Examining data/eris-1.3.23/test/Account_unittest.cpp
Examining data/eris-1.3.23/test/Alarm_unittest.cpp
Examining data/eris-1.3.23/test/Avatar_unittest.cpp
Examining data/eris-1.3.23/test/BaseConnection_unittest.cpp
Examining data/eris-1.3.23/test/Calendar_unittest.cpp
Examining data/eris-1.3.23/test/Connection_unittest.cpp
Examining data/eris-1.3.23/test/DeleteLater_unittest.cpp
Examining data/eris-1.3.23/test/ElementExerciser.h
Examining data/eris-1.3.23/test/EntityRef_unittest.cpp
Examining data/eris-1.3.23/test/EntityRouter_unittest.cpp
Examining data/eris-1.3.23/test/Entity_unittest.cpp
Examining data/eris-1.3.23/test/Exceptions_unittest.cpp
Examining data/eris-1.3.23/test/Factory_unittest.cpp
Examining data/eris-1.3.23/test/IGRouter_unittest.cpp
Examining data/eris-1.3.23/test/Lobby_unittest.cpp
Examining data/eris-1.3.23/test/LogStream_unittest.cpp
Examining data/eris-1.3.23/test/Log_unittest.cpp
Examining data/eris-1.3.23/test/MetaQuery_unittest.cpp
Examining data/eris-1.3.23/test/Metaserver_integrationtest.cpp
Examining data/eris-1.3.23/test/Metaserver_unittest.cpp
Examining data/eris-1.3.23/test/Operations_unittest.cpp
Examining data/eris-1.3.23/test/Person_unittest.cpp
Examining data/eris-1.3.23/test/PollDefault_unittest.cpp
Examining data/eris-1.3.23/test/PollWinsock_unittest.cpp
Examining data/eris-1.3.23/test/Poll_unittest.cpp
Examining data/eris-1.3.23/test/Redispatch_unittest.cpp
Examining data/eris-1.3.23/test/Response_unittest.cpp
Examining data/eris-1.3.23/test/Room_unittest.cpp
Examining data/eris-1.3.23/test/Router_unittest.cpp
Examining data/eris-1.3.23/test/ServerInfo_unittest.cpp
Examining data/eris-1.3.23/test/SignalFlagger.h
Examining data/eris-1.3.23/test/Task_unittest.cpp
Examining data/eris-1.3.23/test/TerrainMod_unittest.cpp
Examining data/eris-1.3.23/test/TimedEventService_unittest.cpp
Examining data/eris-1.3.23/test/Timeout_unittest.cpp
Examining data/eris-1.3.23/test/TransferInfo_unittest.cpp
Examining data/eris-1.3.23/test/TypeBoundRedispatch_unittest.cpp
Examining data/eris-1.3.23/test/TypeInfo_unittest.cpp
Examining data/eris-1.3.23/test/TypeService_unittest.cpp
Examining data/eris-1.3.23/test/Types_unittest.cpp
Examining data/eris-1.3.23/test/UIFactory_unittest.cpp
Examining data/eris-1.3.23/test/View_unittest.cpp
Examining data/eris-1.3.23/test/agent.cpp
Examining data/eris-1.3.23/test/agent.h
Examining data/eris-1.3.23/test/avatarTest.cpp
Examining data/eris-1.3.23/test/avatarTest.h
Examining data/eris-1.3.23/test/calendarTest.cpp
Examining data/eris-1.3.23/test/calendarTest.h
Examining data/eris-1.3.23/test/clientConnection.cpp
Examining data/eris-1.3.23/test/clientConnection.h
Examining data/eris-1.3.23/test/commander.cpp
Examining data/eris-1.3.23/test/commander.h
Examining data/eris-1.3.23/test/connect.cpp
Examining data/eris-1.3.23/test/controller.cpp
Examining data/eris-1.3.23/test/controller.h
Examining data/eris-1.3.23/test/metaQuery.cpp
Examining data/eris-1.3.23/test/netTests.cpp
Examining data/eris-1.3.23/test/netTests.h
Examining data/eris-1.3.23/test/objectSummary.h
Examining data/eris-1.3.23/test/setupHelpers.cpp
Examining data/eris-1.3.23/test/setupHelpers.h
Examining data/eris-1.3.23/test/signalHelpers.h
Examining data/eris-1.3.23/test/stubServer.cpp
Examining data/eris-1.3.23/test/stubServer.h
Examining data/eris-1.3.23/test/testOutOfGame.cpp
Examining data/eris-1.3.23/test/testOutOfGame.h
Examining data/eris-1.3.23/test/testUtils.cpp
Examining data/eris-1.3.23/test/testUtils.h
Examining data/eris-1.3.23/test/tests.cpp
Examining data/eris-1.3.23/test/viewTest.cpp
Examining data/eris-1.3.23/test/viewTest.h

FINAL RESULTS:

data/eris-1.3.23/Eris/BaseConnection.cpp: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.
#ifndef snprintf
data/eris-1.3.23/Eris/BaseConnection.cpp:32: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/eris-1.3.23/Eris/BaseConnection.cpp:32: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/eris-1.3.23/Eris/Metaserver.cpp:28: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.
#ifndef snprintf
data/eris-1.3.23/Eris/Metaserver.cpp:29: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/eris-1.3.23/Eris/Metaserver.cpp:29: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/eris-1.3.23/test/agent.cpp:239: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.
    switch (random() % 3) {
data/eris-1.3.23/test/agent.cpp:240:44:  [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 0: return Atlas::Message::Element(random() % 10000);
data/eris-1.3.23/test/agent.cpp:241:44:  [3] (random) drand48:
  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 1: return Atlas::Message::Element(drand48() * 1e6);
data/eris-1.3.23/test/agent.cpp:242:52:  [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 2: return Atlas::Message::Element(strings[random() % 10]);
data/eris-1.3.23/test/agent.cpp:314:26:  [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.
        unsigned index = random() % m_visible.size();
data/eris-1.3.23/test/agent.cpp:333:30:  [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.
        unsigned int index = random() % m_server->m_world.size();
data/eris-1.3.23/test/connect.cpp:68:17:  [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.
        int c = getopt(argc, argv, "np:v");
data/eris-1.3.23/Eris/BaseConnection.cpp:235: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.
        char msgBuf[128];
data/eris-1.3.23/Eris/Metaserver.cpp:387: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.
            char buf[32];
data/eris-1.3.23/Eris/Metaserver.cpp:462: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(buffer, &netorder, sizeof(uint32_t));
data/eris-1.3.23/Eris/Metaserver.cpp:473: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(&netorder, buffer, sizeof(uint32_t));
data/eris-1.3.23/Eris/Metaserver.h:170:2:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
	char _data[DATA_BUFFER_SIZE];
data/eris-1.3.23/bindings/polls/winsock/PollWinsock.h:69: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 buffer[DATA_BUFSIZE];
data/eris-1.3.23/bindings/polls/winsock/PollWinsock_impl.h:73: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 buffer[DATA_BUFSIZE];
data/eris-1.3.23/test/clientConnection.cpp: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 charId[64];
data/eris-1.3.23/test/commander.cpp:130: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.
        char buf[32];
data/eris-1.3.23/test/stubServer.cpp:65: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).
    m_commandSocket.open("/tmp/eris-test");
data/eris-1.3.23/test/stubServer.cpp:258: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 oid[64];

ANALYSIS SUMMARY:

Hits = 24
Lines analyzed = 24943 in approximately 0.56 seconds (44153 lines/second)
Physical Source Lines of Code (SLOC) = 16523
Hits@level = [0]  46 [1]   0 [2]  11 [3]   7 [4]   6 [5]   0
Hits@level+ = [0+]  70 [1+]  24 [2+]  24 [3+]  13 [4+]   6 [5+]   0
Hits/KSLOC@level+ = [0+] 4.23652 [1+] 1.45252 [2+] 1.45252 [3+] 0.786782 [4+] 0.36313 [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.