Module Name: src Committed By: christos Date: Sun Jun 30 16:26:30 UTC 2024
Modified Files: src/lib/libedit: search.c Log Message: Prevent reading before the line buffer (try ^R^W in emacs mode at the beginning of the line) (Robert Morris) https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279426 To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 src/lib/libedit/search.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libedit/search.c diff -u src/lib/libedit/search.c:1.51 src/lib/libedit/search.c:1.52 --- src/lib/libedit/search.c:1.51 Mon Mar 30 02:56:38 2020 +++ src/lib/libedit/search.c Sun Jun 30 12:26:30 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: search.c,v 1.51 2020/03/30 06:56:38 ryo Exp $ */ +/* $NetBSD: search.c,v 1.52 2024/06/30 16:26:30 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)search.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: search.c,v 1.51 2020/03/30 06:56:38 ryo Exp $"); +__RCSID("$NetBSD: search.c,v 1.52 2024/06/30 16:26:30 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -295,6 +295,9 @@ ce_inc_search(EditLine *el, int dir) for (cp = &el->el_search.patbuf[LEN];; cp++) if (cp >= &el->el_search.patbuf[ el->el_search.patlen]) { + if (el->el_line.cursor == + el->el_line.buffer) + break; el->el_line.cursor += el->el_search.patlen - LEN - 1; cp = c__next_word(el->el_line.cursor,