From 53f7d350f9ba79fabc998418c5fffc999eb0e5da Mon Sep 17 00:00:00 2001 From: Ewald Dieterich Date: Fri, 21 Jun 2024 11:04:09 +0200 Subject: [PATCH] Fix substring indexing crash indexer-worker: Error: terminate called after throwing an instance of 'std::length_error' indexer-worker: Error: what(): basic_string::_M_create indexer-worker(user)<640260>: Fatal: master: service(indexer-worker): child 640260 killed with signal 6 (core dumped) --- src/fts-backend-flatcurve-xapian.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fts-backend-flatcurve-xapian.cpp b/src/fts-backend-flatcurve-xapian.cpp index 937a591..7a1fb02 100644 --- a/src/fts-backend-flatcurve-xapian.cpp +++ b/src/fts-backend-flatcurve-xapian.cpp @@ -1284,7 +1284,7 @@ fts_flatcurve_xapian_index_header(struct flatcurve_fts_backend_update_context *c size -= csize; } while (fuser->set.substring_search && (size >= 0) && - (uni_utf8_strlen(p) >= fuser->set.min_term_size)); + (uni_utf8_strlen_n(p, size) >= fuser->set.min_term_size)); } void @@ -1315,7 +1315,7 @@ fts_flatcurve_xapian_index_body(struct flatcurve_fts_backend_update_context *ctx size -= csize; } while (fuser->set.substring_search && (size >= 0) && - (uni_utf8_strlen(p) >= fuser->set.min_term_size)); + (uni_utf8_strlen_n(p, size) >= fuser->set.min_term_size)); } void fts_flatcurve_xapian_delete_index(struct flatcurve_fts_backend *backend)