Re: [PATCH] kdb: Fix pager search for multi-line strings

From: Doug Anderson
Date: Mon Sep 14 2020 - 19:14:13 EST


Hi,

On Wed, Sep 9, 2020 at 7:18 AM Daniel Thompson
<daniel.thompson@xxxxxxxxxx> wrote:
>
> 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
> acordingly.
>
> Fixes: fb6daa7520f9d ("kdb: Provide forward search at more prompt")
> Signed-off-by: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
> ---
>
> Notes:
> In the long term the kdb pager code would probably benefit from a
> bigger rewrite since the way it handles newlines is still quirky
> and confusing. However this fix is easy to backport so I decided
> not to hold it back whilst we wait for code that is not yet
> written.
>
> kernel/debug/kdb/kdb_io.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)

Wow, more kdb functionality that I never knew anything about! Seems
like a reasonable fix to me even if I agree that the code could use a
bigger cleanup.

Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>