diff options
| author | Junio C Hamano <gitster@pobox.com> | 2024-03-21 14:55:12 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-03-21 14:55:12 -0700 |
| commit | 8be51c1f36e7891c2d9c934d9bb8a81970a0f04e (patch) | |
| tree | 0b4d7efe5ba99b7a0c6d1d29816dfb48bb717534 /wt-status.c | |
| parent | 3eba921f813641cdac96532c5c4fd99358a8cbb8 (diff) | |
| parent | 2541cba2d6808011be84469a3e700d0d59a1d612 (diff) | |
| download | git-8be51c1f36e7891c2d9c934d9bb8a81970a0f04e.tar.xz | |
Merge branch 'fs/find-end-of-log-message-fix'
The code to find the effective end of log message can fall into an
endless loop, which has been corrected.
* fs/find-end-of-log-message-fix:
wt-status: don't find scissors line beyond buf len
Diffstat (limited to 'wt-status.c')
| -rw-r--r-- | wt-status.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/wt-status.c b/wt-status.c index 7108a92b52..2db4bb3a12 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1093,8 +1093,11 @@ size_t wt_status_locate_end(const char *s, size_t len) strbuf_addf(&pattern, "\n%c %s", comment_line_char, cut_line); if (starts_with(s, pattern.buf + 1)) len = 0; - else if ((p = strstr(s, pattern.buf))) - len = p - s + 1; + else if ((p = strstr(s, pattern.buf))) { + size_t newlen = p - s + 1; + if (newlen < len) + len = newlen; + } strbuf_release(&pattern); return len; } |
