]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #4046 checking offset compared to string length
authorcash <cash.costello@gmail.com>
Sun, 4 Dec 2011 02:00:42 +0000 (21:00 -0500)
committercash <cash.costello@gmail.com>
Sun, 4 Dec 2011 02:03:42 +0000 (21:03 -0500)
mod/search/start.php

index 73a96dc0a778df9565485a7817bb9182eb2357ec..bb8531e9c3e2ff5f2f094f502e1debe158690025 100644 (file)
@@ -107,6 +107,7 @@ function search_get_highlighted_relevant_substrings($haystack, $query, $min_matc
                $word = elgg_strtolower($word);
                $count = elgg_substr_count($haystack_lc, $word);
                $word_len = elgg_strlen($word);
+               $haystack_len = elgg_strlen($haystack_lc);
 
                // find the start positions for the words
                if ($count > 1) {
@@ -117,6 +118,10 @@ function search_get_highlighted_relevant_substrings($haystack, $query, $min_matc
                                $stop = $pos + $word_len + $min_match_context;
                                $lengths[] = $stop - $start;
                                $offset += $pos + $word_len;
+
+                               if ($offset >= $haystack_len) {
+                                       break;
+                               }
                        }
                } else {
                        $pos = elgg_strpos($haystack_lc, $word);