From 9be11c048a52f9e8c8f179c12876d2738e4f7e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Thu, 6 Apr 2017 09:08:06 +0200 Subject: [PATCH] batt_smbus: fix string length, use correct delete[] for array --- src/drivers/batt_smbus/batt_smbus.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/drivers/batt_smbus/batt_smbus.cpp b/src/drivers/batt_smbus/batt_smbus.cpp index 47b963df78..f9a07a75d4 100644 --- a/src/drivers/batt_smbus/batt_smbus.cpp +++ b/src/drivers/batt_smbus/batt_smbus.cpp @@ -339,15 +339,15 @@ BATT_SMBUS::~BATT_SMBUS() } if (_manufacturer_name != nullptr) { - delete _manufacturer_name; + delete[] _manufacturer_name; } if (_device_name != nullptr) { - delete _device_name; + delete[] _device_name; } if (_device_chemistry != nullptr) { - delete _device_chemistry; + delete[] _device_chemistry; } } @@ -603,7 +603,7 @@ BATT_SMBUS::cycle() uint8_t len = manufacturer_name((uint8_t *)man_name, sizeof(man_name)); if (len > 0) { - _manufacturer_name = new char[len]; + _manufacturer_name = new char[len + 1]; strcpy(_manufacturer_name, man_name); perform_solo_battry_check = true; } @@ -614,7 +614,7 @@ BATT_SMBUS::cycle() uint8_t len = device_name((uint8_t *)dev_name, sizeof(dev_name)); if (len > 0) { - _device_name = new char[len]; + _device_name = new char[len + 1]; strcpy(_device_name, dev_name); perform_solo_battry_check = true; } @@ -625,7 +625,7 @@ BATT_SMBUS::cycle() uint8_t len = device_chemistry((uint8_t *)dev_chem, sizeof(dev_chem)); if (len > 0) { - _device_chemistry = new char[len]; + _device_chemistry = new char[len + 1]; strcpy(_device_chemistry, dev_chem); perform_solo_battry_check = true; }