Fix nullptr in with_command_1
Commit Message
On 8/2/19 7:04 PM, Tom Tromey wrote:
>>>>>> "Bogdan" == Bogdan Harjoc <harjoc@gmail.com> writes:
>
> Bogdan> Reproduced with gdb built from git HEAD, running 'with' without
> Bogdan> arguments. Patch is attached.
>
> This needs a ChangeLog entry.
> I think a simple test case would also be good.
>
Ah, I could swear that I had tested this... Obviously not.
I've added a test, ChangeLog entries, and merged it.
Thanks for noticing/fixing this!
From 26c957f12762816a90d5145c7c527ca48c890855 Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Wed, 21 Aug 2019 21:11:33 +0100
Subject: [PATCH] Fix nullptr in with_command_1
Running 'with' without arguments crashes GDB. This fixes it.
gdb/ChangeLog:
2019-08-21 Bogdan Harjoc <harjoc@gmail.com>
* cli/cli-cmds.c (with_command_1): Error out if no arguments.
gdb/testsuite/ChangeLog:
2019-08-21 Pedro Alves <palves@redhat.com>
* gdb.base/with.exp: Test "with" with no arguments.
---
gdb/ChangeLog | 4 ++++
gdb/testsuite/ChangeLog | 4 ++++
gdb/cli/cli-cmds.c | 3 +++
gdb/testsuite/gdb.base/with.exp | 2 ++
4 files changed, 13 insertions(+)
@@ -1,3 +1,7 @@
+2019-08-21 Bogdan Harjoc <harjoc@gmail.com>
+
+ * cli/cli-cmds.c (with_command_1): Error out if no arguments.
+
2019-08-21 Christian Biesinger <cbiesinger@google.com>
* tui/tui-data.h (tui_gen_win_info): Add an =default
@@ -1,3 +1,7 @@
+2019-08-21 Pedro Alves <palves@redhat.com>
+
+ * gdb.base/with.exp: Test "with" with no arguments.
+
2019-08-21 Tom de Vries <tdevries@suse.de>
* gdb.base/gdb-caching-proc.exp: Sort files.
@@ -217,6 +217,9 @@ void
with_command_1 (const char *set_cmd_prefix,
cmd_list_element *setlist, const char *args, int from_tty)
{
+ if (args == nullptr)
+ error (_("Missing arguments."));
+
const char *delim = strstr (args, "--");
const char *nested_cmd = nullptr;
@@ -220,6 +220,8 @@ with_test_prefix "run control" {
# Check errors.
with_test_prefix "errors" {
+ gdb_test "with" "Missing arguments\\."
+
# Try both an unknown root setting and an unknown prefixed
# setting. The errors come from different locations in the
# sources.