[galib] Bug in deterministic and stochastic remainder samling selectors ?

gio sarto teofilo68 at yahoo.co.uk
Fri Aug 13 07:30:16 EDT 2004

Dear all

I think I found a bug in both

because my test program crashes every now and then
with SEGV or signal 11 error under lunux and g++

The problem is in the source file GASelector.C, 
in the while loops like:

while(ne > 0){ 
  choices[k] = i; 
  k++; ne--; 

that start respectively at lines:
301 and 341  of GASRSSelector::update()

433 and 469 of GADSSelector::update().
In those loops there is no check that k < pop.size(),
and sure enough it often happens that the choices[]
array is written out of bounds, with consequent memory
I propose the following fix,
replace the while statements above:
while(ne > 0)


while((ne > 0) && (k < n))

as far as I understand it does not affect the logic
of the selection but fixes the bug.

I will be glad to ear your comments.


Giovanni Sartoni

___________________________________________________________ALL-NEW Yahoo! Messenger - all new features - even more fun!  http://uk.messenger.yahoo.com

More information about the galib mailing list