[GtkSearchEngineQuartz] Don't run off the end of the results array and crash.

This commit is contained in:
John Ralls
2019-01-11 16:14:00 -08:00
parent 5ecc3080fe
commit 3c49c593f5

View File

@@ -73,12 +73,14 @@ G_DEFINE_TYPE_WITH_PRIVATE (GtkSearchEngineQuartz, _gtk_search_engine_quartz, GT
{
int i;
GList *hits = NULL;
/* The max was originally set to 1000 to mimic the Beagle backend. */
const unsigned int max_hits = 1000;
const unsigned int max_iter = submitted_hits + [ns_query resultCount];
/* The max was originally set to 1000 to mimic something called "the
* boogie backend". submitted_hits contains the number of hits we've
* processed in previous calls to this function.
*/
const unsigned int max_hits = 1000 - submitted_hits;
const unsigned int max_iter = [ns_query resultCount];
/* Here we submit hits "submitted_hits" to "resultCount" */
for (i = submitted_hits; i < max_iter && i < max_hits; ++i)
for (i = 0; i < max_iter && i < max_hits; ++i)
{
id result = [ns_query resultAtIndex:i];
const char *result_path;
@@ -101,7 +103,7 @@ G_DEFINE_TYPE_WITH_PRIVATE (GtkSearchEngineQuartz, _gtk_search_engine_quartz, GT
if (max_iter >= max_hits)
[ns_query stopQuery];
submitted_hits = max_iter;
submitted_hits += max_iter;
}
- (void) queryUpdate:(id)sender