Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp279810pxx; Wed, 28 Oct 2020 04:53:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwm3NlGdG1C3JtAWgfPQb8EU2Jb2qC6vVIXAp/l6m7wC/nOOT+xRP0AKHStc0vf+BTCErsx X-Received: by 2002:a17:906:a4b:: with SMTP id x11mr7378413ejf.11.1603886030847; Wed, 28 Oct 2020 04:53:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603886030; cv=none; d=google.com; s=arc-20160816; b=Ya/3fvLB6QTtzgTE7mrohK4qih2TgeqB9EkQlPI5Q0KStFWjvx+OI1ZkqlEVTTiX4K LLJplaz4se+/HzK0T9Pzrq9LnfZBB5FqXEAOJ8TDLThnFRFR1vnHjDhd56WVaSzm2TDc T8HUelITeVed0He5BZinfqd00TBdxu2fjMDonbRJZmIjZoaF64bqcEo5EL429a0De1Nu yxtAHAeKKf0dQMRPt2Ubtj4eBBqtKQI7WuNH52togGRa8u+tBjSQMtBtEvd38SHDN6lv I542zmRcZwVVQ5xNw7bVx9cPySbt24i0/mr/k1iV4Q2SrgLihFCGFM97IjPyXWvdS1b5 HUNQ== 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=vJF+oXLxse0lozgoQQii7BGXzlLr8ydPCfVM1E9eyGU=; b=E9vBRwUhR36is3Yrx4BlQp1RK9qMLt1DNmAS3fc3blCDHAdDdY/1SScku61aAta+p5 4e6LvZOwi1hwfNcy2aOLuwPpQdmMYFr0g7QVuyHH+2gU4+BzrPxQhzFDO3xh3s4ANUMS vGF3/AW8wCdIC482U78j1CgttiGKc23i08mK8CHu5NzXY5uuBUVkADAQKu41boWpsvew mogQc9IilaCuIzOu+VgtwlflNtDkjAE462zG01wm2W0x/WEv2D67xS9o4z8BXO4CUFpo 7WvkfPQX06a/e99CyNASbr1oTUUIEn/t3qy31QfyD874y6f3ROJLTbXJxN2wnVFK8lGc W0rw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Jq7eKUBr; 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 w17si2969573ejk.629.2020.10.28.04.53.28; Wed, 28 Oct 2020 04:53:50 -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=Jq7eKUBr; 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 S1794684AbgJ0PND (ORCPT + 99 others); Tue, 27 Oct 2020 11:13:03 -0400 Received: from mail.kernel.org ([198.145.29.99]:40226 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1791013AbgJ0PF7 (ORCPT ); Tue, 27 Oct 2020 11:05:59 -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 35B9522275; Tue, 27 Oct 2020 15:05:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603811157; bh=xlhEOzynfP14jssKdwl2/mvT5fwki824Eq4CS4Xa17c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Jq7eKUBruUewuKzCQloZBrNNQ1z99sBatKL5mLW1UvHG+vW/eHGaWLVtJiX7eiGzw kBqh2LBk+6MbXv3fPOiBVGby41YNS6nUmYbUgYF23ntz1ZnBF2Oq1cSGc13iaYS2NO MY1g9RngSt82b7T28NNsjbGgy3FJ9wmklUGOsXUo= 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.8 394/633] kdb: Fix pager search for multi-line strings Date: Tue, 27 Oct 2020 14:52:17 +0100 Message-Id: <20201027135541.191273718@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135522.655719020@linuxfoundation.org> References: <20201027135522.655719020@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 683a799618ade..bc827bd547c81 100644 --- a/kernel/debug/kdb/kdb_io.c +++ b/kernel/debug/kdb/kdb_io.c @@ -706,12 +706,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