Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp2943075pxb; Tue, 12 Jan 2021 02:25:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJxvNn8duC5Mf+9+SiXzDAtuWAE5fDY7iju7J4u8Zuo4V6E3L263NJ5muui6hX4Hgz0kXN// X-Received: by 2002:a17:906:9388:: with SMTP id l8mr2716048ejx.22.1610447152098; Tue, 12 Jan 2021 02:25:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610447152; cv=none; d=google.com; s=arc-20160816; b=gC7KaHCiprgQp3dT580OLL75j7mXgUkjr5WUBJNEygvbU9Gm0f31OiI8nyoCAG6Y9e NJSOViX8fsBcMQRG6ZsIHet55SJa2a3F+ENM6PE2eqGwh9cbSgPTn/uZoOyBYjngZJes EneOc1Im2xyCpOc5Nq+NdxQlZnNjSgfYoW+B4pP0IdlH10HHITWruk+K9dQOh2Rju40w 6e8MwUb3zMpJhMiJsEsEab+e5MbUcZwqbMNe/LpzlYaHeqpdhErmJSNU0S1g3qKsmYcE xfRLHRXRrnH8JDDK35q2A6L0/CF3M0++mGrKeJwI6odi35Ztt2AmXfbcBiWyL/pp2FCN QKSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:subject:from :references:cc:to; bh=kuE71SrSFIMVqpih9CQzYgeBszW3bnkesji03t5s2bk=; b=VBX0I+mrnCcdg3OYqJ14I8JZI06+hllRi6lvWQ0TMBtDUxYdmbtl9eomtrKzXZDOAb kArDc+AgDCQGHagjYTv7eoW70uzIqDY748ZI6E/ZSr/fDTyyyK86iIzdgHWb0rngdKxm rO9RKT4x32k6cTroFoqeSwifLjAXJqGB5c0m0QToPj3zUlALfLb33sv1IphI36iCSOTr mwlHdlonhdDW7zT2HbtKdOm3Ls9E8e8Su3B8zUrKwVSBtkt1mQuGxke74qpWPyxD+xPO 54/jSwImiTeHkbtRqs0KUOCW+KQmRRbjAS8A+/TpvkzPnOz0EO+Fi2WiLbRdFAbYc2mo NsDg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y1si996404ejg.277.2021.01.12.02.25.28; Tue, 12 Jan 2021 02:25:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391645AbhALAZN (ORCPT + 99 others); Mon, 11 Jan 2021 19:25:13 -0500 Received: from mx2.suse.de ([195.135.220.15]:35884 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404213AbhAKXw6 (ORCPT ); Mon, 11 Jan 2021 18:52:58 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 61B22AB7F; Mon, 11 Jan 2021 23:52:17 +0000 (UTC) To: Andy Lutomirski , Borislav Petkov Cc: "Chang S. Bae" , tdevries@suse.com, x86-ml , lkml References: <20210111200027.GH25645@zn.tnic> From: Tom de Vries Subject: Re: gdbserver + fsgsbase kaputt Message-ID: <0ad68c87-ac2e-478e-ed97-95256464a3ba@suse.de> Date: Tue, 12 Jan 2021 00:52:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1/12/21 12:40 AM, Andy Lutomirski wrote: > On Mon, Jan 11, 2021 at 1:06 PM Andy Lutomirski wrote: >> >> >>> On Jan 11, 2021, at 12:00 PM, Borislav Petkov wrote: >>> >> >> >>> Or do you mean I should add "unsafe_fsgsbase" to grub cmdline and bisect >>> with fsgsbase enabled in all test kernels? >> >> Yes. But I can also look myself in a bit. >> > > Tom, if I reproduce it in an interactive gdb and play a bit, I get: > > Program received signal SIGSEGV, Segmentation fault. > 0xf7df2cb6 in init_cacheinfo () from target:/lib/libc.so.6 > (gdb) p $gs = $gs > $1 = 99 > (gdb) si > > Program terminated with signal SIGSEGV, Segmentation fault. > The program no longer exists. > > That's gdb itself crashing. Any idea what's wrong? > The first "Program received signal SIGSEGV, Segmentation fault" means that gdb intercepts the sigsegv, and allows you to inspect it f.i. by printing $_siginfo. The inferior is still live at this point. Then when trying to continue using si, the signal is passed on to the inferior, which means it'll be terminated. AFAIU, gdb has not crashed, and behaves as expected. See below for a similar scenario. Thanks, - Tom ... $ cat test2.c int main (void) { *((int *)0) = 0; return 0; } $ gcc test2.c $ ./a.out Segmentation fault (core dumped) $ gdb -q ./a.out Reading symbols from ./a.out... (gdb) r Starting program: /home/vries/a.out Program received signal SIGSEGV, Segmentation fault. 0x00000000004004a0 in main () (gdb) si Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) ...