From patchwork Tue Jun 2 14:50:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Burgess X-Patchwork-Id: 136314 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3D33E4BA2E2E for ; Tue, 2 Jun 2026 14:51:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3D33E4BA2E2E Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=EDb8VzBs X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTP id 2D3B04BA2E29 for ; Tue, 2 Jun 2026 14:51:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2D3B04BA2E29 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2D3B04BA2E29 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1780411861; cv=none; b=FR6LPolkX25XzuE2PPx9C+nx2WoswNI8qFe9pul2vr9cKcpWpgVzvNGuLpkn0IaZMHt2+zVIAf03H66qTmLc8vzH4dwunMd25vq8bdI3rpXmIrJeTkgjfw+ktDfwS0SXsWbkcvkfiT3AkompiYQAI2AyF7tR/qIiDdQmMvGQ03c= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1780411861; c=relaxed/simple; bh=p1PMoaaPoDrXVr9F0OH+ryz+PLdgZcZfuM+IGWKrnBI=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=eyXKtOH/iV+/4kGHXmoUPrKwWJJSiVj0XwGuobHSQgxTpgq7fPIaQItUhW8C+zL/eyISfPNulfxShfUZthaArHjfx+vUN5ceV/Nn9LSs7/M60AeFl1akRy+cZdEBcrbZaCAO0sQmPx74mFSyfno61f3o6QhVyGayBqlGdnX0w6Q= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=EDb8VzBs DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2D3B04BA2E29 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780411860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0o+yyhrO2c9w0lOrHUCTwfaCucmpYnjp7JprwIruRY0=; b=EDb8VzBsZxMbndkpRgI20wkTn6EaOwxuTfE1nOyuHmk0AmhfjGOSPyazJ+lL3uFuHNoSpQ 9VJuUfyeaM4t6Tp89iLFIs4u1OoDZJrP39xsFhHa1DAsXVm03vANiuJEXOPFO+kvL/6LQ8 StQJe22ULyjhpYEOyj1CeMXc0elPKK8= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-139-D1lZygLwMNenQNvtHjo3zA-1; Tue, 02 Jun 2026 10:50:59 -0400 X-MC-Unique: D1lZygLwMNenQNvtHjo3zA-1 X-Mimecast-MFC-AGG-ID: D1lZygLwMNenQNvtHjo3zA_1780411858 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-45ef9f0af71so2570830f8f.1 for ; Tue, 02 Jun 2026 07:50:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780411858; x=1781016658; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=0o+yyhrO2c9w0lOrHUCTwfaCucmpYnjp7JprwIruRY0=; b=lbDpPvULk3ruwL+ps5+pdoExifyptw0Y4WyoOnlY/wZO6A19c/6W1Dz1CtOGJ1PaRj V0WJkoRMsUIiBpbAl7doG/oWZ4R/z5+EzHYkJvMf3zuHUKkZWmwpVpU1o5Mgiws/8DfU SIjebi0SCMN/1iFHn6PbbDaI3yX/+cyXaf4aoebtVQz77kHJ/nxJQ/UGgxZ0nxa4RB1H Yl/hi3CLQh998XVQcDSrs9rVOoV+p5ZytHrwYmW0lxO9a+obyDJazrV5e764v9ZwSAjO zfp6QejhZwbqUToFsvx0ZkUcNtUioR/hT+MugqNSe9+rKOXrexxSTPSMFEyXopnPs5l4 9C0w== X-Gm-Message-State: AOJu0Yxs0Z05XwMFNob7/JucQ+t+3AAuSjcqlSVQUH9ThFFFN64648FX iWOC2MC4c1jNvL2Is+27n7AgnctNgK4T2T3NK3q7xVtkNvPobmo/fgYzyF81W+Es8G5GrHvuyNW zh8Jmd3yTtRvy3/YSypygaZNQyVqfwwDTmmKjnF3O9Lfr5HPIGCyI6CreI9Dmrcw4f+jNmRLijR pIbjLosoT679rSR4ERq2FeZ2drgNZMBOI4ryzhdf4+tcANCQw= X-Gm-Gg: Acq92OFSPr236BQZV3xYHBUTcUQdr0zTKJ1WrF6u58TltxXZ1hZD8GxrTjjHXoOeEF6 TE2sxMZCMyReLvWSiU+cisXw7jYdiy6fExo16q+DMFEhybLVs4gr18K5xK5kD/vnOpEcY1Gl7Jk 6nMBAm8dqKhuYJFuS5h577/pwYhudCkd0gp78fbAzHxAggJRtxT9G7isGuMbA3gFVxDGDepmxnd w0JqyQF9XFbIlY4p19LMKyDWSrtH0A0N8HWNbVhgnv5DIx2l6sLWKhxj/HOxyTfsAOaPX5SISAd 5D8sNc9F1zVbx9nI2t7GiLu5Y2pDc1MwLprYb5BG3ED3I2akLE6ROkBo4ZDLaFQK3YyxRbkoeJb srQyl0LKsxlENC8s8POO4NJDXdA== X-Received: by 2002:a05:6000:1611:b0:45e:8526:7dcb with SMTP id ffacd0b85a97d-46018cde5c3mr5668229f8f.7.1780411858210; Tue, 02 Jun 2026 07:50:58 -0700 (PDT) X-Received: by 2002:a05:6000:1611:b0:45e:8526:7dcb with SMTP id ffacd0b85a97d-46018cde5c3mr5668184f8f.7.1780411857697; Tue, 02 Jun 2026 07:50:57 -0700 (PDT) Received: from localhost ([213.31.44.43]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef35598e5sm30931760f8f.27.2026.06.02.07.50.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 07:50:57 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Andrew Burgess Subject: [PATCH] gdb: handle missing arguments to 'maint test-remote-args' Date: Tue, 2 Jun 2026 15:50:55 +0100 Message-Id: <644351aab44c70b422c4be078725231a45dc73b9.1780411840.git.aburgess@redhat.com> X-Mailer: git-send-email 2.25.4 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: gIVxD5YWIfnxslOWH0V5g8ipzX1nYmWacKq9c1ejyNU_1780411858 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, RCVD_IN_PBL, SPF_HELO_PASS, SPF_NONE, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~patchwork=sourceware.org@sourceware.org I noticed that the 'maint test-remote-args' command, implemented by the test_remote_args_command function in remote.c, contains this code: static void test_remote_args_command (const char *args, int from_tty) { std::vector split_args = gdb::remote_args::split (args); ... etc ... The problem here is that gdb::remote_args::split expects a std::string, and so ends up creating a std::string from ARGS. However, ARGS can be NULL, e.g. if a user does this: (gdb) maint test-remote-args This ends up creating a std::string from a NULL pointer, which is undefined behaviour. Fix this by adding a check to test_remote_args_command, and throwing an error if ARGS is NULL. Add a new test to verify this case. Additionally, fix a typo in the header comment for test_remote_args_command. --- gdb/remote.c | 5 ++++- gdb/testsuite/gdb.base/maint-test-remote-args.exp | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) base-commit: f577746edb4ca2678f69feb5e5848a646d5cd856 diff --git a/gdb/remote.c b/gdb/remote.c index 735774903f3..2961664cf33 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -12767,12 +12767,15 @@ cli_packet_command (const char *args, int from_tty) The split and joined arguments are printed out. Additionally, the joined arguments are split and joined a second time, and compared to the result of the first join, this provides some basic validation that GDB - sess the joined arguments as equivalent to the original argument + sees the joined arguments as equivalent to the original argument string. */ static void test_remote_args_command (const char *args, int from_tty) { + if (args == nullptr) + error (_("missing argument string")); + std::vector split_args = gdb::remote_args::split (args); gdb_printf ("Input (%s)\n", args); diff --git a/gdb/testsuite/gdb.base/maint-test-remote-args.exp b/gdb/testsuite/gdb.base/maint-test-remote-args.exp index b1a3e67abc6..22d9e81c25d 100644 --- a/gdb/testsuite/gdb.base/maint-test-remote-args.exp +++ b/gdb/testsuite/gdb.base/maint-test-remote-args.exp @@ -38,3 +38,6 @@ gdb_test "maint test-remote-args a b c" \ " \\(b\\)" \ " \\(c\\)" \ "Output \\(a b c\\)"] + +gdb_test "maint test-remote-args" "^missing argument string" \ + "command without an argument string"