From patchwork Fri Dec 15 14:59:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82259 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6CD7B384DEEF for ; Fri, 15 Dec 2023 14:59:53 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-io1-xd34.google.com (mail-io1-xd34.google.com [IPv6:2607:f8b0:4864:20::d34]) by sourceware.org (Postfix) with ESMTPS id 3E8983858D1E for ; Fri, 15 Dec 2023 14:59:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3E8983858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3E8983858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d34 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702652379; cv=none; b=PGfk9EnAmDB7V0u14CrBtDpnF+Np/cWho1tpy+dnqDXtUL9zEIoXRl88mj+3MunjDlyvPD8BVJ7HWn48RrHJuSwiaKD0ww8nIoBmimEOB9Wy2ApSfLqMmHtKtOYzSyOOet5UORM7E0O6WYhj7TRU6SqTAPQJghrGCs1NO5pcKOU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702652379; c=relaxed/simple; bh=W5EXPCtOL+LsCmXc2+ThJpYjEvrpjG90nMOZsrgXc3o=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=iA9IP7V6rBvjUjasAvp+MOpjt03QUmeBJtbTdrMHQ2t7utttRlawBUwO8vGC7ne/MjfFGDOb9hwPhYXyGxQflZidzBSOlZ8F5QJ64U0xuCQ2kEYy7kkP5Kv0nXGCWlNbwKd3X/IV3ALoHarnMCYejsWqddu4rV7oVg/4poJah4s= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd34.google.com with SMTP id ca18e2360f4ac-7b70139d54cso28234539f.1 for ; Fri, 15 Dec 2023 06:59:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1702652376; x=1703257176; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=pACMGJCz0jyaFjSt+DDga/No25/MbfNyEyyMk+SIZ14=; b=G6rnyckXdt88xU+Lx0UD4rrYIJTO6TAl+jRzMe7ULvk/Ktw+e+gijiwrvXqnDnMHLp mn3tvuwK3EvsAUkSaizcYWgtZpvbgLvpQOdbcMrfFrsdSm8A7OE7FswWBzP9STokiUQF e6w1OCc/TkPKgHEVL8FaNGIfAN2a6QZW1GnWcVZyGi/b+V+00mt7RdAlXdxTfZm44DFs l/dziR8mdVFukNwjWG85IaR8DsLf7HrEc3EOaClAe0HvMeibReQcEdv91YWMjwLMVGuo c9R2LHQhH4yylQf8A6XNjjT0Rd/ikJfDOPgE9Y3HDVAAtafbpKNEGN2shEigtLL8hyxY u0NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702652376; x=1703257176; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pACMGJCz0jyaFjSt+DDga/No25/MbfNyEyyMk+SIZ14=; b=vMgaV40WBAqewiPRB4N+3JUBHHtAW4pDmcV+GUdyGmHdtikEVMH3fZJuz7MvCObxXY FtUxq2jyRmQ3HS4KVcMZWVSeyGA4om9hUs7QTZF6cG1fcQTRGf7jLs+0Ea/XIFhssd4x DXWzJrvZfcdaI9Z8it2OX/uy+BEWmwCG1FAZYoIgwabrqilgES0btZt73mBNFeNXIIP+ ox07PLOGrvAp5lfNnOmrpSrho1iy1SD4fGxg/prpwmGLs4UfZl1Dw7Lh5S7wxKmu35eq 5z3DI4ZNsjTIAglYAdE2Imdt/pHd4W1pewkaoJdYD+fPNA18Rl68+rf8mGOhHNIJDk2d NLkw== X-Gm-Message-State: AOJu0YwGyuAzcocY6d6f9c1wFVdXNduX1iyrF7ResODJi7D3Vh1niQ5Z w8gFD5BdrCab+dUgf3DejDAd+THK8Q9kdvayMrI= X-Google-Smtp-Source: AGHT+IGvSjvlmSbIuvBuflF6V2WGjLbhudGT19e8OVbN9f6F9+i87Iqz3h7c7YqbNw6i5gyh8gjNYg== X-Received: by 2002:a05:6602:2803:b0:7b3:989f:ee57 with SMTP id d3-20020a056602280300b007b3989fee57mr11297105ioe.7.1702652376439; Fri, 15 Dec 2023 06:59:36 -0800 (PST) Received: from localhost.localdomain (71-211-161-25.hlrn.qwest.net. [71.211.161.25]) by smtp.gmail.com with ESMTPSA id d2-20020a02a482000000b004691845afb0sm3971584jam.38.2023.12.15.06.59.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Dec 2023 06:59:35 -0800 (PST) From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH] Fix two bugs in gdbserver thread name handling Date: Fri, 15 Dec 2023 07:59:28 -0700 Message-ID: <20231215145928.3396394-1-tromey@adacore.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.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 Simon pointed out that my earlier patch to gdbserver's thread name code: commit 07b3255c3bae7126a0d679f957788560351eb236 Author: Tom Tromey Date: Thu Jul 13 17:28:48 2023 -0600 Filter invalid encodings from Linux thread names ... introduced a regression. Looking at it, I found another bug as well. This patch fixes both of them. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31153 --- gdbserver/linux-low.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc index 4aa011c14ec..8cbc7833e53 100644 --- a/gdbserver/linux-low.cc +++ b/gdbserver/linux-low.cc @@ -7013,11 +7013,13 @@ current_lwp_ptid (void) } /* A helper function that copies NAME to DEST, replacing non-printable - characters with '?'. Returns DEST as a convenience. */ + characters with '?'. Returns the original DEST as a + convenience. */ static const char * replace_non_ascii (char *dest, const char *name) { + const char *result = dest; while (*name != '\0') { if (!ISPRINT (*name)) @@ -7026,7 +7028,8 @@ replace_non_ascii (char *dest, const char *name) *dest++ = *name; ++name; } - return dest; + *dest = '\0'; + return result; } const char * @@ -7064,8 +7067,8 @@ linux_process_target::thread_name (ptid_t thread) else if ((errno == EILSEQ || errno == EINVAL) && outbuf < &dest[sizeof (dest) - 2]) *outbuf++ = '?'; - *outbuf = '\0'; } + *outbuf = '\0'; iconv_close (handle); return *dest == '\0' ? nullptr : dest;