aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-08-15 18:37:00 -0600
committerTom Tromey <tom@tromey.com>2018-08-17 16:37:39 -0600
commit12582533306990c9406aedd960fa411c317a67de (patch)
tree74005391dc703c6ff07974487a81ce2507ca8c55
parentbfb1e8c15a6b7d02cd0b9a124d01722a07ebf09a (diff)
downloadbinutils-12582533306990c9406aedd960fa411c317a67de.zip
binutils-12582533306990c9406aedd960fa411c317a67de.tar.gz
binutils-12582533306990c9406aedd960fa411c317a67de.tar.bz2
Fix use-after-free in number_or_range_parser
-fsanitize=address showed a use-after-free in number_or_range_parser. The cause was that handle_line_of_input could stash the input into "saved_command_line", and then this could be freed by reentrant calls. This fixes the bug by preventing commands that are read by "commands" from being eligible for repeating. gdb/ChangeLog 2018-08-17 Tom Tromey <tom@tromey.com> * cli/cli-script.c (read_next_line): Pass 0 as repeat argument to command_line_input.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/cli/cli-script.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9fac8cc..a40f39f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2018-08-17 Tom Tromey <tom@tromey.com>
+
+ * cli/cli-script.c (read_next_line): Pass 0 as repeat argument to
+ command_line_input.
+
2018-08-15 Tom Tromey <tom@tromey.com>
* aarch64-linux-tdep.c (aarch64_linux_core_read_vq): Use pulongest.
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 6f31a40..d03b3bc 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -903,7 +903,7 @@ read_next_line (void)
else
prompt_ptr = NULL;
- return command_line_input (prompt_ptr, from_tty, "commands");
+ return command_line_input (prompt_ptr, 0, "commands");
}
/* Return true if CMD's name is NAME. */