Bug in IndexSearcher with limit => all and any offset


#1

Here’s the deal:

static TopDocs *isea_search_w(Searcher *self,
Weight *weight,
int first_doc, // OFFSET
int num_docs, // LIMIT
Filter *filter,
Sort *sort,
filter_ft filter_func,
bool load_fields)
{
int max_size = first_doc + num_docs;

Actually, when you have limit => :all, num_docs equals to INT_MAX, so
adding a value to it makes a nice int overflow :confused:

The diff patch is here:
http://pastie.caboo.se/40748

I’ve told Dave by mail but it seems like he’s very busy lately, hope
someone else can release some fix here :slight_smile:


Jérémie ‘ahFeel’ BORDIER
Rift Technologies - http://www.rift.fr


#2

On 2/16/07, ahFeel removed_email_address@domain.invalid wrote:

{
int max_size = first_doc + num_docs;

Actually, when you have limit => :all, num_docs equals to INT_MAX, so
adding a value to it makes a nice int overflow :confused:

The diff patch is here:
http://pastie.caboo.se/40748

I’ve told Dave by mail but it seems like he’s very busy lately, hope
someone else can release some fix here :slight_smile:

Thanks Jérémie, this bug has been fixed.