[sword-devel] Infinite loop bug in BosworthToller

DM Smith dmsmith at crosswire.org
Thu Jan 14 10:26:54 MST 2016


It was reported yesterday by Karl, that BosworthToller has an infinite loop bug. And that mod2imp hits this bug.

Here is where mod2imp starts to loop:
$$$-ǼWED
<entryFree n="-ǽwed"><p><form><orth>-ǽwed</orth></form>. v. ge-ǽ.</p></entryFree>
$$$-ǼWIRDLIAN
<entryFree n="-ǽwirdlian"><p><form><orth>-ǽwirdlian</orth></form>. v. ge-ǽ</p></entryFree>
$$$-ǼÞE
<entryFree n="-ǽþe"><p><form><orth>-ǽþe</orth></form>. v. cyning-ǽ.</p></entryFree>
$$$1
<entryFree n="-ǽþe"><p><form><orth>-ǽþe</orth></form>. v. cyning-ǽ.</p></entryFree>
$$$1
<entryFree n="-ǽþe"><p><form><orth>-ǽþe</orth></form>. v. cyning-ǽ.</p></entryFree>
This last entry is stuck in a loop.

From JSword, I’ve dumped the module just fine. Here is the section that is problematic:
Legend:
first column: index of the entry in the module
Second column: offset
Third column: size in bytes
Fourth column: the key
Fifth column: block number
Sixth column: block offset
(didn’t include columns for the index and offset in the uncompressed block.)
Last column: the first part of the entry, manually truncated for readability.
860	-ǼWED	<entryFree n="-ǽwed"><p><form><orth>-ǽwed</orth></form>. ….
861	-ǼWIRDLIAN	<entryFree n="-ǽwirdlian"><p><form><orth>-ǽwirdlian</orth></form>. ….
862	-ǼÞE	<entryFree n="-ǽþe"><p><form><orth>-ǽþe</orth></form>. ….
863	1	<entryFree n="1"><p><form><orth>1</orth></form>. ….
864	3	<entryFree n="3"><p><form><orth>3</orth></form>. ….
865	A	<entryFree n="a"><p><form><orth>a</orth></form>; ….
866	A	<entryFree n="A"><p><form><orth>A</orth></form>. ….
867	A-BACAN	<entryFree n="a-bacan"><p><form><orth>a-bacan</orth></form>, ….
868	A-BANNAN	<entryFree n="a-bannan"><p><form><orth>a-bannan</orth></form>; ….
870	A-BEALH	<entryFree n="a-bealh"><p><form><orth>a-bealh</orth></form> ….

Note: there are duplicate keys. This might be merely “a” problem, pun intended.

Just a wild guess, 1 is padded as if it were a Strong’s Number to become 00001 and that is used for a lookup. The standard behavior on lookup is to return the nearest match.

Padding to Strong’s Numbers should only happen if the module has Feature=GreekDef or Feature=HebrewDef. I don’t think it cares and pads the number anyway.

If I add StrongsPadding=false to the conf, the module works.

DM



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20160114/67c2df39/attachment.html>


More information about the sword-devel mailing list