[Zope-dev] BUG: IntSet.c:229

Anthony Pfrunder s341625@student.uq.edu.au
Wed, 16 Jun 1999 11:40:42 +1000 (GMT+1000)


Hi,

I've found a bug in Zope2.a2.  You can see it by running:

	import inSet
	intSet.intSet().insert(1)

and zope.exe will segfault in intset.pyd or kernal32.dll.
I have only tested it with my Zope2a2 win32 release.

I've traced it through to:
	<zope-src>\Lib\Components\Btree\intset.c line 229

Which is:

 data=self->data+i;
  if(self->len > i)
    memmove(data+1,data,(self->len-i)*sizeof(INTSET_DATA_TYPE));
  *data=ikey; <-- segfaults here
  exit(0);

If you move Exit(0) to above *data=ikey; then it doesn't segfault.

My guess is that the args to memmove are wrong but have tried all
obvious ones including:
	* memmove(data+i, data...)
	* memmove(data, data+i...)

and it still segfaults.

Could someone check this and let me know if I am wrong or not.  This
pyd is preventing me from running SquishDot on win32.

Cheers,
Anthony Pfrunder

PS Please cc replies to s341625@student.uq.edu.au thanx