[sword-devel] THE BIGGEST BUG ;-)
Troy A. Griffitts
Mon, 08 Nov 1999 07:47:34 +0000
> I discovered a REALLY BIG BUG! It's a big memory leak! The bug occurs in every
> SWORD 1.4x version.
Congratulations! You win!
> Open BibleTime, set the lower search bound in the searchscope dialog to
> something like "Matthew" and type in the upper bound _nothing_. (no text).
> Start search for a word like "Jesus".
> Wait 10 minutes and your computer will be DEAD!
> SWORD searches until infinity and will eat every mem avaible
The problem is that I don't check for upper bounds being less than
lower bounds. When "" or something similar is sent to upper bounds ""
is parsed to "Gen 1:1" then the last chapter and verse are applied sense
none were specified and it is 'upper' bounds, and I'd bet a shiny
dreckel that you end up with something like 'Genesis 50:26' as your
upper bounds. However, I still cannot compile bibletime (I'm pretty
sure I'm in a group of all RH6.1 users who will probably have trouble
also). I could write a simple test program to do the same thing, but
before I do, you might try putting a simple check in
if (*upperBound < *lowerBound) //* so we don't check the pointer addr :)
*upperBound = *lowerBound;
Or in the contructor that takes min and max, if 1 of these is null or ""
or whatever you are passing if nothing is entered, don't call the
Let me know if you don't get it fixed, or don't have time, and I will
look into the fix. If you get it working, send me that patch! (diff -u
versekey.cpp.orig versekey.cpp is fine, you don't have to diff the whole
tree as I'm pretty sure the fix will be in this file.)