server/telnet: enhance telnet_move_cursor
authorTarek BOCHKATI <tarek.bouchkati@gmail.com>
Wed, 18 Aug 2021 18:55:48 +0000 (19:55 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Mon, 30 Aug 2021 13:54:06 +0000 (13:54 +0000)
instrument the telnet_move_cursor to detect when there is no change
of cursor position and if the requested new position is out of bounds.

Change-Id: I24da877e538a458da6d2f8ddc2a681eee404d2cb
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/6441
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
src/server/telnet_server.c

index f7b3f6449bbfda33c3daa894a1ad963f7ccdb052..36b017c58ebb2916d81ad42b7ca0e5b6c5eca4e4 100644 (file)
@@ -352,10 +352,14 @@ static int telnet_history_print(struct connection *connection)
 
 static void telnet_move_cursor(struct connection *connection, size_t pos)
 {
-       struct telnet_connection *tc;
+       struct telnet_connection *tc = connection->priv;
        size_t tmp;
 
-       tc = connection->priv;
+       if (pos == tc->line_cursor) /* nothing to do */
+               return;
+
+       if (pos > tc->line_size) /* out of bounds */
+               return;
 
        if (pos < tc->line_cursor) {
                tmp = tc->line_cursor - pos;