wigig: Fixing static analysis warnings
Fixing static analysis warnings in legacy device access code and host_manager_11ad.
Change-Id: I9fcc2664e9495e02444465cb75ccd59d1fab4071
Signed-off-by: Vadim Iosevich <vadimi@codeaurora.org>
diff --git a/debug-tools/host_manager_11ad/CommandsExecutor.cpp b/debug-tools/host_manager_11ad/CommandsExecutor.cpp
index 4d9a459..25dee8c 100644
--- a/debug-tools/host_manager_11ad/CommandsExecutor.cpp
+++ b/debug-tools/host_manager_11ad/CommandsExecutor.cpp
@@ -264,7 +264,7 @@
bool CommandsExecutor::RemoveTestDeviceRegister(const std::string& deviceName, const std::string& name)
{
- for (size_t i = 0; i < sizeof(deviceNames); i++)
+ for (size_t i = 0; i < deviceNames.size(); i++)
{
if (deviceNames[i] == deviceName)
{
@@ -278,4 +278,4 @@
}
}
return false;
-}
\ No newline at end of file
+}
diff --git a/debug-tools/host_manager_11ad/DeviceManager.cpp b/debug-tools/host_manager_11ad/DeviceManager.cpp
index 2084fbf..ce2e816 100644
--- a/debug-tools/host_manager_11ad/DeviceManager.cpp
+++ b/debug-tools/host_manager_11ad/DeviceManager.cpp
@@ -826,8 +826,8 @@
const auto boardfileTypeIter = m_boardfileTypeToString.find((value & 0xFFF000) >> 12);
deviceData.m_boardFile = boardfileTypeIter != m_boardfileTypeToString.cend() ? boardfileTypeIter->second : std::string("UNDEFINED");
- DWORD rfConnected;
- DWORD rfEnabled;
+ DWORD rfConnected = 0;
+ DWORD rfEnabled = 0;
device.second->GetDriver()->Read(RF_CONNECTED_REG, rfConnected);
device.second->GetDriver()->Read(RF_ENABLED_REG, rfEnabled);
rfEnabled = rfEnabled >> 8;
@@ -1105,7 +1105,7 @@
bool DeviceManager::SetLogCollectionConfiguration(const vector<string>& deviceNames, const vector<string>& cpuTypeNames, const string& parameter, const string& value, string& errorMessage)
{
- bool success;
+ bool success = true;
errorMessage = "";
stringstream errorMessageSs;
for (auto& deviceName : deviceNames)
diff --git a/debug-tools/host_manager_11ad/UdpNetworkInterface.cpp b/debug-tools/host_manager_11ad/UdpNetworkInterface.cpp
index d6f1c23..c645b52 100644
--- a/debug-tools/host_manager_11ad/UdpNetworkInterface.cpp
+++ b/debug-tools/host_manager_11ad/UdpNetworkInterface.cpp
@@ -130,6 +130,12 @@
{
#ifndef _WINDOWS
char* buf = new char[len];
+ if (nullptr == buf)
+ {
+ LOG_ERROR << "Cannot allocate receive buffer for UDP messages" << std::endl;
+ return "";
+ }
+
if (recvfrom(m_socket, buf, len, 0, NULL, 0) < 0)
{
LOG_WARNING << "Can't receive from port " << m_portIn << std::endl;
diff --git a/debug-tools/host_manager_11ad/UdpServer.cpp b/debug-tools/host_manager_11ad/UdpServer.cpp
index 984499d..858f906 100644
--- a/debug-tools/host_manager_11ad/UdpServer.cpp
+++ b/debug-tools/host_manager_11ad/UdpServer.cpp
@@ -79,6 +79,12 @@
do
{
const char* incomingMessage = m_pSocket->Receive(m_maxMessageLength);
+ if (nullptr == incomingMessage)
+ {
+ LOG_ERROR << "Got NULL instead of incoming UDP message" << endl;
+ continue;
+ }
+
LOG_VERBOSE << "Got Udp message: " << incomingMessage << endl;
ResponseMessage referencedResponse;
m_CommandHandler.ExecuteCommand(incomingMessage, referencedResponse);
@@ -94,4 +100,4 @@
void UdpServer::SendBroadcastMessage(ResponseMessage responseMessage)
{
m_pSocket->Send(responseMessage.message);
-}
\ No newline at end of file
+}
diff --git a/debug-tools/lib/FlashAcss/flash.cpp b/debug-tools/lib/FlashAcss/flash.cpp
index 63c8c79..c818402 100644
--- a/debug-tools/lib/FlashAcss/flash.cpp
+++ b/debug-tools/lib/FlashAcss/flash.cpp
@@ -51,7 +51,15 @@
m_hw_read_chunk_size = 256;
m_hw_write_chunk_size = 256;
m_page_erased = new bool [m_size / FLASH_PAGE_SIZE];
- memset(m_page_erased, 0, m_size / FLASH_PAGE_SIZE);
+
+ if (!m_page_erased)
+ {
+ ERR("Cannot allocate page_erased buffer of size %d\n", m_size / FLASH_PAGE_SIZE);
+ exit(1);
+ }
+
+ memset(m_page_erased, 0, m_size / FLASH_PAGE_SIZE);
+
m_buffer = NULL;
update_erased_flash(false);
@@ -70,7 +78,7 @@
free_buffer();
- delete m_page_erased;
+ delete[] m_page_erased;
}
void flash::free_buffer ()
@@ -445,6 +453,11 @@
u_int32_t offset = 0;
BYTE *verify_buffer = new BYTE[FLASH_PAGE_SIZE];
+ if (!verify_buffer) {
+ ERR("Cannot allocate verify buffer\n");
+ return -1;
+ }
+
u_int32_t loop = 0;
bool dbg_verify = false;
while (!m_bExit && offset < length )
@@ -720,6 +733,11 @@
// m_device_name = device_name;
m_handler = fopen( device_name, "rb+");
m_buffer = new char [m_size];
+ if (!m_buffer) {
+ ERR("Cannot allocate a buffer of size %u\n", m_size);
+ return (-1);
+ }
+
if (0 == m_handler) { // File doesn't exist
if (g_debug) DBG("file %s type %d does not exist. Creating...\n", device_name, dtype);
m_handler = fopen( device_name, "wb");
diff --git a/debug-tools/lib/WlctPciAcss/MemoryAccess.cpp b/debug-tools/lib/WlctPciAcss/MemoryAccess.cpp
index 758c4cb..b1fafc5 100644
--- a/debug-tools/lib/WlctPciAcss/MemoryAccess.cpp
+++ b/debug-tools/lib/WlctPciAcss/MemoryAccess.cpp
@@ -41,7 +41,13 @@
deviceType = devType;
m_pMem = new char[m_size];
- memset(m_pMem, 0, m_size);
+ if (!m_pMem)
+ {
+ LOG_MESSAGE_ERROR(_T("Cannot allocate memory access buffer"));
+ exit(1);
+ }
+
+ memset(m_pMem, 0, m_size);
}
CMemoryAccess::~CMemoryAccess(void)
diff --git a/debug-tools/lib/WlctPciAcss/PciDeviceAccess.cpp b/debug-tools/lib/WlctPciAcss/PciDeviceAccess.cpp
index 343a650..3f1d1d4 100644
--- a/debug-tools/lib/WlctPciAcss/PciDeviceAccess.cpp
+++ b/debug-tools/lib/WlctPciAcss/PciDeviceAccess.cpp
@@ -562,6 +562,8 @@
PFILTER_WRITE_BLOCK pinParams;
char* p = new char[2*sizeof(ULONG) + blockSize];
+ if (!p) return -1;
+
pinParams = (PFILTER_WRITE_BLOCK)p;
pinParams->address = addr;
diff --git a/debug-tools/remoteserver/cmdiface.cpp b/debug-tools/remoteserver/cmdiface.cpp
index 9c03471..b00c2d0 100644
--- a/debug-tools/remoteserver/cmdiface.cpp
+++ b/debug-tools/remoteserver/cmdiface.cpp
@@ -373,6 +373,13 @@
}
unsigned int *val = new unsigned int[num_regs];
+
+ if (!val)
+ {
+ m_Reply = "0xDEADDEAD\r\n";
+ return 0;
+ }
+
int rc = readBlock(handler, address, num_regs*sizeof(unsigned int), (char*)val);
if (rc == 0)
diff --git a/debug-tools/remoteserver/server.cpp b/debug-tools/remoteserver/server.cpp
index 5ee1b48..0f8cdb9 100644
--- a/debug-tools/remoteserver/server.cpp
+++ b/debug-tools/remoteserver/server.cpp
@@ -71,6 +71,12 @@
connection_par_t *par = (connection_par_t*)ptr;
iface = new CmdIface();
buf = new char[MAX_INPUT_BUF+1];
+ if (!buf)
+ {
+ LOG_ERROR << "Cannot allocate server receive buffer" << std::endl;
+ pthread_exit(0);
+ }
+
memset(buf, 0, MAX_INPUT_BUF+1);
rw = read(par->sock, buf, MAX_INPUT_BUF);
diff --git a/debug-tools/remoteserver/udp_server.cpp b/debug-tools/remoteserver/udp_server.cpp
index 64c161d..fafa2be 100644
--- a/debug-tools/remoteserver/udp_server.cpp
+++ b/debug-tools/remoteserver/udp_server.cpp
@@ -194,6 +194,11 @@
}
char* buf = new char[MAX_INPUT_BUF];
+ if (!buf)
+ {
+ LOG_ERROR << "Cannot allocate receive buffer for UDP messages" << std::endl;
+ return NULL;
+ }
do
{
diff --git a/debug-tools/wiburn/flash_sections.cpp b/debug-tools/wiburn/flash_sections.cpp
index 67cc166..13e5566 100644
--- a/debug-tools/wiburn/flash_sections.cpp
+++ b/debug-tools/wiburn/flash_sections.cpp
@@ -60,6 +60,11 @@
//unused param
(void)name;
BYTE *null_terminated_buffer = new BYTE [sizeof (id) + 1];
+ if (!null_terminated_buffer)
+ {
+ return;
+ }
+
memcpy(null_terminated_buffer, id, sizeof (id));
null_terminated_buffer[sizeof (id)] = 0;
printf("CONFIGURATION_ID = %s\n", null_terminated_buffer);
@@ -1346,6 +1351,12 @@
{
this->m_size = ini_section.size() * sizeof (IMAGE);
m_buffer = new IMAGE [ini_section.size()];
+ if (!m_buffer)
+ {
+ ERR("Cannot allocate a buffer of size %lu\n", ini_section.size());
+ EXIT (-1);
+ }
+
memset((void*)m_buffer, -1, this->m_size);
ini_section_t::const_iterator sec_iter;
diff --git a/debug-tools/wiburn/wiburn.cpp b/debug-tools/wiburn/wiburn.cpp
index 97f4268..74a627a 100644
--- a/debug-tools/wiburn/wiburn.cpp
+++ b/debug-tools/wiburn/wiburn.cpp
@@ -371,6 +371,12 @@
}
BYTE *tmp_buffer = new BYTE [int_length];
+ if (!tmp_buffer)
+ {
+ ERR("Cannot allocate temp buffer of size %d\n", int_length);
+ EXIT(-1);
+ }
+
g_flash->read(int_offset, int_length, tmp_buffer);
if (read_formatted) {