You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ut...@apache.org on 2021/01/31 23:18:25 UTC

[mynewt-mcumgr] branch master updated: mynewt: Fix strncpy warning

This is an automated email from the ASF dual-hosted git repository.

utzig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-mcumgr.git


The following commit(s) were added to refs/heads/master by this push:
     new 552c6a5  mynewt: Fix strncpy warning
552c6a5 is described below

commit 552c6a529bec1ed7c653ef4e8915c942111105bb
Author: Casper Meijn <ca...@meijn.net>
AuthorDate: Fri Jan 8 20:24:38 2021 +0100

    mynewt: 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 buffer size and explicitly
    set a zero byte.
    
    Error: repos/apache-mynewt-mcumgr/cmd/os_mgmt/port/mynewt/src/mynewt_os_mgmt.c: In function 'os_mgmt_impl_task_info':
    repos/apache-mynewt-mcumgr/cmd/os_mgmt/port/mynewt/src/mynewt_os_mgmt.c:92:5: error: 'strncpy' specified bound 32 equals destination size [-Werror=stringop-truncation]
       92 |     strncpy(out_info->oti_name, task->t_name, sizeof out_info->oti_name);
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    cc1: all warnings being treated as errors
---
 cmd/os_mgmt/port/mynewt/src/mynewt_os_mgmt.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/cmd/os_mgmt/port/mynewt/src/mynewt_os_mgmt.c b/cmd/os_mgmt/port/mynewt/src/mynewt_os_mgmt.c
index 78f198b..4a0cdc4 100644
--- a/cmd/os_mgmt/port/mynewt/src/mynewt_os_mgmt.c
+++ b/cmd/os_mgmt/port/mynewt/src/mynewt_os_mgmt.c
@@ -89,7 +89,8 @@ os_mgmt_impl_task_info(int idx, struct os_mgmt_task_info *out_info)
     out_info->oti_last_checkin = task->t_sanity_check.sc_checkin_last;
     out_info->oti_next_checkin = task->t_sanity_check.sc_checkin_last +
                                  task->t_sanity_check.sc_checkin_itvl;
-    strncpy(out_info->oti_name, task->t_name, sizeof out_info->oti_name);
+    strncpy(out_info->oti_name, task->t_name, sizeof out_info->oti_name - 1);
+    out_info->oti_name[sizeof out_info->oti_name - 1] = '\0';
 
     return 0;
 }