Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp227403pxx; Wed, 28 Oct 2020 03:25:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyCtsrzsNHexulLarGxDkgd84GEV0oSb8h1KEjGw7dK7QbJBCc00D+1bZUEUS/1jz2wrZZk X-Received: by 2002:a17:906:c0d8:: with SMTP id bn24mr6672813ejb.480.1603880736185; Wed, 28 Oct 2020 03:25:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603880736; cv=none; d=google.com; s=arc-20160816; b=I7X5wtwAkahlN3s4Q2wDZQiPHhJhvKq3hsMBjZSrcBu4ISV3QPrC/rir2KfQi2zXz5 IUtxxPotg5vIZVQQEpE1aZ23b91bppIAh97iaVLPpKOCO6eaBWsho3TsS+R6xp0bjn6O SPI9QYM/hO/cLfS8FzGCY0jGX3F6/mN/JTZnTomYawbn0pha6KI8ZnZOEvtNMedGk3Ar 7zUSkRukAaTl6PJW3Ryo4eczY9ezIa/h09B4pvRHHp61gEIniijqXOrdXH40wYfGRXRa DsZEwT3UvqBbmd3ADTSbA/pqXyPOOHmicWPVIn4GeK25wPN68Mk55FIUsdCq7J3fo6Sl kpIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=AdLpAM6E7G9eQJOwRIQQH0FXUE86GSuyFW/QSlJBOOo=; b=EK2zDpderWK+fetUK6/xX/rBb4c1Qd0xxiJ/OQs9g9X/cM55lr4KxwtOQfkElzwO2i eiLuWgTErYSsyR1qlKJAdx4TdQx9ZLrHj6nGqAJinYZU6II8ltc/hxOKnJajDAzIY0Q7 9t7xSlX2y/j2Fgoy2Ruf3XOLFlXWMwJWnRtPjAcYtcfDPhtlLQg7gFTeHh19NRz/Nmnr gxcLNfMEBfaEODTLHrAqg0jZXDLIA9u406l1FAvw4kSQdEia9B+oBCQG7y4yuSPcwrh0 ebiXlWjbcnZElAGt+R5uBOzrxpaf1D2NcUEtt/xsrqnf6sXEopHIgJ0OVwZgKATSEp3E c8gg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=VONk3xg7; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z8si2802677eju.267.2020.10.28.03.25.14; Wed, 28 Oct 2020 03:25:36 -0700 (PDT) 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; dkim=pass header.i=@kernel.org header.s=default header.b=VONk3xg7; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761432AbgJ0Ojm (ORCPT + 99 others); Tue, 27 Oct 2020 10:39:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:38734 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1761400AbgJ0Oj0 (ORCPT ); Tue, 27 Oct 2020 10:39:26 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 63BBC207BB; Tue, 27 Oct 2020 14:39:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603809565; bh=swme+pPfVswRQr4ie7TZzJfIuBGOUpA3V3OvIDeXIP8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VONk3xg7GXGUMwI3HSO1Iw3I/BBU+KYbFsL3Zb7w9FgtPSEpLGB0kt/d8PpC795eF ZyCrrxxNRwBXwmC+j9UGXxXNRFId5kGoApbAusEFWLl7VKp5PR4IqnfdfZ1ZG8yjnq CayjBU71jgefDPMyW41hUNB72kBAb/IYtDWx4pGA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Douglas Anderson , Daniel Thompson , Sasha Levin Subject: [PATCH 5.4 241/408] kdb: Fix pager search for multi-line strings Date: Tue, 27 Oct 2020 14:52:59 +0100 Message-Id: <20201027135506.238150584@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135455.027547757@linuxfoundation.org> References: <20201027135455.027547757@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Daniel Thompson [ Upstream commit d081a6e353168f15e63eb9e9334757f20343319f ] Currently using forward search doesn't handle multi-line strings correctly. The search routine replaces line breaks with \0 during the search and, for regular searches ("help | grep Common\n"), there is code after the line has been discarded or printed to replace the break character. However during a pager search ("help\n" followed by "/Common\n") when the string is matched we will immediately return to normal output and the code that should restore the \n becomes unreachable. Fix this by restoring the replaced character when we disable the search mode and update the comment accordingly. Fixes: fb6daa7520f9d ("kdb: Provide forward search at more prompt") Link: https://lore.kernel.org/r/20200909141708.338273-1-daniel.thompson@linaro.org Reviewed-by: Douglas Anderson Signed-off-by: Daniel Thompson Signed-off-by: Sasha Levin --- kernel/debug/kdb/kdb_io.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c index 3a5184eb6977d..46821793637a1 100644 --- a/kernel/debug/kdb/kdb_io.c +++ b/kernel/debug/kdb/kdb_io.c @@ -679,12 +679,16 @@ int vkdb_printf(enum kdb_msgsrc src, const char *fmt, va_list ap) size_avail = sizeof(kdb_buffer) - len; goto kdb_print_out; } - if (kdb_grepping_flag >= KDB_GREPPING_FLAG_SEARCH) + if (kdb_grepping_flag >= KDB_GREPPING_FLAG_SEARCH) { /* * This was a interactive search (using '/' at more - * prompt) and it has completed. Clear the flag. + * prompt) and it has completed. Replace the \0 with + * its original value to ensure multi-line strings + * are handled properly, and return to normal mode. */ + *cphold = replaced_byte; kdb_grepping_flag = 0; + } /* * at this point the string is a full line and * should be printed, up to the null. -- 2.25.1