From 2b9f01f0e4cfc3732d143bd1833bb3cff7b23133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Mon, 16 Jan 2023 11:08:48 +0100 Subject: [PATCH] fix cppcheck --- src/gps/NMEAWPL.cpp | 12 ++++++------ src/gps/NMEAWPL.h | 4 ++-- src/modules/AdminModule.cpp | 6 +++--- src/modules/SerialModule.cpp | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/gps/NMEAWPL.cpp b/src/gps/NMEAWPL.cpp index 842fc0760..8fafc6ba0 100644 --- a/src/gps/NMEAWPL.cpp +++ b/src/gps/NMEAWPL.cpp @@ -16,10 +16,10 @@ * ------------------------------------------- */ -uint32_t printWPL(char *buf, const Position &pos, const char *name) +uint32_t printWPL(char *buf, size_t bufsz, const Position &pos, const char *name) { GeoCoord geoCoord(pos.latitude_i,pos.longitude_i,pos.altitude); - uint32_t len = snprintf(buf, sizeof(buf), "$GNWPL,%02d%07.4f,%c,%03d%07.4f,%c,%s", + uint32_t len = snprintf(buf, bufsz, "$GNWPL,%02d%07.4f,%c,%03d%07.4f,%c,%s", geoCoord.getDMSLatDeg(), (abs(geoCoord.getLatitude()) - geoCoord.getDMSLatDeg() * 1e+7) * 6e-6, geoCoord.getDMSLatCP(), @@ -31,7 +31,7 @@ uint32_t printWPL(char *buf, const Position &pos, const char *name) for (uint32_t i = 1; i < len; i++) { chk ^= buf[i]; } - len += snprintf(buf + len, sizeof(buf) + len, "*%02X\r\n", chk); + len += snprintf(buf + len, bufsz - len, "*%02X\r\n", chk); return len; } @@ -59,10 +59,10 @@ uint32_t printWPL(char *buf, const Position &pos, const char *name) * ------------------------------------------- */ -uint32_t printGGA(char *buf, const Position &pos) +uint32_t printGGA(char *buf, size_t bufsz, const Position &pos) { GeoCoord geoCoord(pos.latitude_i,pos.longitude_i,pos.altitude); - uint32_t len = snprintf(buf, sizeof(buf), "$GNGGA,%06u.%03u,%02d%07.4f,%c,%03d%07.4f,%c,%u,%02u,%04u,%04d,%c,%04d,%c,%d,%04d", + uint32_t len = snprintf(buf, bufsz, "$GNGGA,%06u.%03u,%02d%07.4f,%c,%03d%07.4f,%c,%u,%02u,%04u,%04d,%c,%04d,%c,%d,%04d", pos.time / 1000, pos.time % 1000, geoCoord.getDMSLatDeg(), @@ -85,6 +85,6 @@ uint32_t printGGA(char *buf, const Position &pos) for (uint32_t i = 1; i < len; i++) { chk ^= buf[i]; } - len += snprintf(buf + len, sizeof(buf) + len, "*%02X\r\n", chk); + len += snprintf(buf + len, bufsz - len, "*%02X\r\n", chk); return len; } \ No newline at end of file diff --git a/src/gps/NMEAWPL.h b/src/gps/NMEAWPL.h index aaa18933c..ee79ffd08 100644 --- a/src/gps/NMEAWPL.h +++ b/src/gps/NMEAWPL.h @@ -3,5 +3,5 @@ #include #include "main.h" -uint32_t printWPL(char *buf, const Position &pos, const char *name); -uint32_t printGGA(char *buf, const Position &pos); +uint32_t printWPL(char *buf, size_t bufsz, const Position &pos, const char *name); +uint32_t printGGA(char *buf, size_t bufsz, const Position &pos); diff --git a/src/modules/AdminModule.cpp b/src/modules/AdminModule.cpp index f790eba71..0bef684f2 100644 --- a/src/modules/AdminModule.cpp +++ b/src/modules/AdminModule.cpp @@ -24,10 +24,10 @@ bool hasOpenEditTransaction; static const char *secretReserved = "sekrit"; /// If buf is the reserved secret word, replace the buffer with currentVal -static void writeSecret(char *buf, const char *currentVal) +static void writeSecret(char *buf, size_t bufsz, const char *currentVal) { if (strcmp(buf, secretReserved) == 0) { - strncpy(buf, currentVal, sizeof(buf)); + strncpy(buf, currentVal, bufsz); } } @@ -381,7 +381,7 @@ void AdminModule::handleGetConfig(const MeshPacket &req, const uint32_t configTy LOG_INFO("Getting config: Network\n"); res.get_config_response.which_payload_variant = Config_network_tag; res.get_config_response.payload_variant.network = config.network; - writeSecret(res.get_config_response.payload_variant.network.wifi_psk, config.network.wifi_psk); + writeSecret(res.get_config_response.payload_variant.network.wifi_psk, sizeof(res.get_config_response.payload_variant.network.wifi_psk), config.network.wifi_psk); break; case AdminMessage_ConfigType_DISPLAY_CONFIG: LOG_INFO("Getting config: Display\n"); diff --git a/src/modules/SerialModule.cpp b/src/modules/SerialModule.cpp index e4ec57a4b..4383ecaab 100644 --- a/src/modules/SerialModule.cpp +++ b/src/modules/SerialModule.cpp @@ -200,7 +200,7 @@ int32_t SerialModule::runOnce() // in NMEA mode send out GGA every 2 seconds, Don't read from Port if (millis() - lastNmeaTime > 2000) { lastNmeaTime = millis(); - printGGA(outbuf, nodeDB.getNode(myNodeInfo.my_node_num)->position); + printGGA(outbuf, sizeof(outbuf), nodeDB.getNode(myNodeInfo.my_node_num)->position); Serial2.printf("%s", outbuf); } } else { @@ -293,7 +293,7 @@ ProcessMessage SerialModuleRadio::handleReceived(const MeshPacket &mp) decoded = &scratch; } // send position packet as WPL to the serial port - printWPL(outbuf, *decoded, nodeDB.getNode(getFrom(&mp))->user.long_name); + printWPL(outbuf, sizeof(outbuf), *decoded, nodeDB.getNode(getFrom(&mp))->user.long_name); Serial2.printf("%s", outbuf); } }