This is an automated email from the ASF dual-hosted git repository. jerzy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 7f524f5f07b8cef1b1f2441a3dd5e2f0fd3054b7 Author: Casper Meijn <[email protected]> AuthorDate: Sat Oct 24 08:50:20 2020 +0200 hw/battery: Fix strncpy warning GCC complains about a strncpy call when build using build_profile speed. This warning indicates a possible string truncation. The only proper solution I could find was to decrease the buf_size and explicitly set a zero byte. Error: In function 'battery_prop_get_name', inlined from 'battery_find_property_by_name' at repos/apache-mynewt-core/hw/battery/src/battery.c:392:9: repos/apache-mynewt-core/hw/battery/src/battery.c:379:5: error: 'strncpy' specified bound 20 equals destination size [-Werror=stringop-truncation] 379 | strncpy(buf, driver_prop->bdp_name, buf_size); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors --- hw/battery/src/battery.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/battery/src/battery.c b/hw/battery/src/battery.c index f900d14..d4e2d08 100644 --- a/hw/battery/src/battery.c +++ b/hw/battery/src/battery.c @@ -376,7 +376,8 @@ battery_prop_get_name(const struct battery_property *prop, char *buf, const struct battery_driver_property *driver_prop = &driver->bd_driver_properties[prop->bp_prop_num - driver->bd_first_property]; - strncpy(buf, driver_prop->bdp_name, buf_size); + strncpy(buf, driver_prop->bdp_name, buf_size - 1); + buf[buf_size - 1] = '\0'; return buf; } @@ -389,7 +390,7 @@ battery_find_property_by_name(struct os_dev *battery, const char *name) int i; for (i = 0; i < bat->b_all_property_count; ++i) { - battery_prop_get_name(&bat->b_properties[i], buf, 20); + battery_prop_get_name(&bat->b_properties[i], buf, sizeof(buf)); if (strcmp(buf, name) == 0) { return &bat->b_properties[i]; }
