[rtems commit] cpukit/libmisc/monitor: Fix src/ dest overlap of strcpy in mon-editor.c
    Vijay Kumar Banerjee 
    vijay at rtems.org
       
    Fri May 28 22:00:50 UTC 2021
    
    
  
Module:    rtems
Branch:    master
Commit:    6a56fd9340e46766dc5b069f259e4c133c06f39a
Changeset: http://git.rtems.org/rtems/commit/?id=6a56fd9340e46766dc5b069f259e4c133c06f39a
Author:    Harrison Edward Gerber <gerberhe11 at gmail.com>
Date:      Thu May 27 17:31:53 2021 -0700
cpukit/libmisc/monitor: Fix src/dest overlap of strcpy in mon-editor.c
See also CID 1399727
Closes #4444
---
 cpukit/libmisc/monitor/mon-editor.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/cpukit/libmisc/monitor/mon-editor.c b/cpukit/libmisc/monitor/mon-editor.c
index dcea9fc..6957fee 100644
--- a/cpukit/libmisc/monitor/mon-editor.c
+++ b/cpukit/libmisc/monitor/mon-editor.c
@@ -360,7 +360,17 @@ rtems_monitor_line_editor (
             {
               int bs;
               pos--;
-              strcpy (buffer + pos, buffer + pos + 1);
+
+              /*
+               * Memory operation used here instead of string
+               * method due the src and dest of buffer overlapping.
+               */
+              memmove(
+                buffer + pos,
+                buffer + pos + 1,
+                RTEMS_COMMAND_BUFFER_SIZE - pos - 1
+              );
+              buffer[RTEMS_COMMAND_BUFFER_SIZE - 1] = '\0';
               fprintf(stdout,"\b%s \b", buffer + pos);
               for (bs = 0; bs < ((int) strlen (buffer) - pos); bs++)
                 putchar ('\b');
    
    
More information about the vc
mailing list