Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp458340pxx; Wed, 28 Oct 2020 08:48:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy3YFg7qTfxz38VhZducfxhhMlL7gCoGyEaZ/sBcd5Gls2o9tjXdt3PxfZ/h5YqhVitKkda X-Received: by 2002:aa7:c7d9:: with SMTP id o25mr8749520eds.318.1603900100832; Wed, 28 Oct 2020 08:48:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603900100; cv=none; d=google.com; s=arc-20160816; b=Cyafk61r9PY+5OKakYv0B1E5GiJJ1OYOOBkJPFmVGbIYkYj7/KJ5Ov6Fpiw4JMHJDU UBVAoUcXPGh7RAJ5pH0j5Vc4Ml3EMEsLzG4snDsF/nRmDwOmHICvLt1C9ZJaPI8yoaMp QnxBkZyBPIrNnAeb91v7T0/IiqbSLnN42M1tNviDz4BFGrjUk9aR31Xw3tz59cnUEtZ/ FcPKHtjetzSo0REkILrON+HdxO/zOo1NN1Vgh/sdVg9bOCXy/k5ksbcL8wKI0CUODRkZ Nj1gFgP4D/QZ5KC8qbtOY1qOOUSuuN+01sf6c5N+Q69IN4/BzX7Dk7WEb44RGI98NE2l FUog== 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=lzvzYHsIj6r6KhXIbBc3ktRR5XXJMbO+K6bKmL71nH4=; b=lSQ7x7Nrkr/MeHZs22RESwdhvOhXb+mphoUP9o/oPahcCeNBUmr72lclNK1PhbqfL5 nxm+B5LrFcLefxgnLKUrEjuVIaIVLothn2jidK97jVz6RjH6Q9GXMAVqUWaO/btSr4Ki n9JDwrQ+f5rew/F7xDhuIn4ZXD6ackjRKal9bPuECk5zoHIdfflx3/nGTW7VSXH5dwbI +N4R3uw6WEfJsXeE/DQ6lTxF+0BrFxYn5BnCrgqZv8J3HRu9JRp5muR74fnup7ZX978f 8qzP5vUZ6z17eWJmAfHWtGUREFu86Yw/ecPzAqpW+j0mzlMbtOCJicHaEdQlYsZdZcD0 IH8g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Aim2l2qt; 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 d2si2953320edn.245.2020.10.28.08.47.58; Wed, 28 Oct 2020 08:48:20 -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=Aim2l2qt; 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 S368831AbgJ0Qse (ORCPT + 99 others); Tue, 27 Oct 2020 12:48:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:33860 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S368822AbgJ0Plr (ORCPT ); Tue, 27 Oct 2020 11:41:47 -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 D8A2A223B0; Tue, 27 Oct 2020 15:41:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603813306; bh=HlvhLh2XRV8P63I3PDSoEJNpntXPrXg01bsS+JuAT6M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Aim2l2qtq4K1UricKvWeIu6EfliPaHl0/Z8EQgcUL3CqwZ2vt8G4MbqDGNCe0fJk9 15TXKUfC1ueOQRfqYUhQKs2uVs1DTm5Ixc8rKcC2Wq96Mm3cBcr9PwYbAoz1C5WC1T Va6Oy/31q5loCWIahmbNtG0rdG7Gws4p8HtO45S8= 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.9 477/757] kdb: Fix pager search for multi-line strings Date: Tue, 27 Oct 2020 14:52:07 +0100 Message-Id: <20201027135512.866706533@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135450.497324313@linuxfoundation.org> References: <20201027135450.497324313@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 9d847ab851dbe..e240c97086e20 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