#21 Crash in letter_is_okay() with trigger

v1.0 (example)
open
nobody
5
2007-02-27
2007-02-27
No

recognizing attached tif with v1.03 crashes as follows:
pppppspppppppppspppppppppsppppppppppppppppppppppppppp
Program received signal SIGSEGV, Segmentation fault.
0x080fb8a8 in letter_is_okay (dawg=0xb7f09008, node=0xbf815a04, char_index=7, prevchar=0 '\0',
word=0xbf815bff "proto-ft", word_end=0) at dawg.cpp:49
49 if (edge_occupied (dawg, edge)) {
(gdb) bt
#0 0x080fb8a8 in letter_is_okay (dawg=0xb7f09008, node=0xbf815a04, char_index=7, prevchar=0 '\0',
word=0xbf815bff "proto-ft", word_end=0) at dawg.cpp:49
#1 0x080f3b26 in append_next_choice (dawg=0xb7f09008, node=108107, permuter=5 '\005',
word=0xbf815bff "proto-ft", choices=0x82e7ad0, char_index=7, this_choice=0x8260df0,
prevchar=0 '\0', limit=0xbf815c28, rating=0, certainty=-1.15637732, rating_array=0xbf815ab4,
certainty_array=0xbf815b58, word_ending=0, last_word=0, result=0xbf815a58) at permdawg.cpp:202
#2 0x080f3f03 in dawg_permute (dawg=0xb7f09008, node=108107, permuter=5 '\005',
choices=0x82e7ad0, char_index=7, limit=0xbf815c28, word=0xbf815bff "proto-ft", rating=0,
certainty=0, rating_array=0xbf815ab4, certainty_array=0xbf815b58, last_word=0)
at permdawg.cpp:273
#3 0x080f40b3 in dawg_permute_and_select (string=0x814f9fc "system words:", dawg=0xb7f09008,
permuter=5 '\005', character_choices=0x82e7ad0, best_choice=0x8260d40, system_words=1)
at permdawg.cpp:334
#4 0x080f5640 in permute_words (char_choices=0x82e7ad0, rating_limit=1000) at permute.cpp:1611
#5 0x080f6549 in permute_all (char_choices=0x82e7ad0, rating_limit=1000, raw_choice=0xbf815dc8)
at permute.cpp:1092
#6 0x080f6952 in permute_characters (char_choices=0x82e7ad0, limit=1000, best_choice=0xbf815dd8,
raw_choice=0xbf815dc8) at permute.cpp:1146
#7 0x080d1ef6 in chop_word_main (word=0x826f830, fx=1, best_choice=0xbf815dd8,
raw_choice=0xbf815dc8, tester=0 '\0', trainer=0 '\0') at chopper.cpp:476
#8 0x080cf426 in cc_recog (tessword=0x826f830, best_choice=0xbf815dd8,
best_raw_choice=0xbf815dc8, tester=0 '\0', trainer=0 '\0') at tface.cpp:247
#9 0x08069a94 in recog_word_recursive (word=0x826e9f0, denorm=0x826be54,
matcher=0x80684a0 <tess_default_matcher(PBLOB*, PBLOB*, PBLOB*, WERD*, DENORM*, BLOB_CHOICE_LIST&)>, tester=0, trainer=<value optimized out>, testing=0 '\0', raw_choice=@0x826be7c,
blob_choices=0xbf8162b8, outword=@0x826be50) at tfacepp.cpp:191
#10 0x0806a380 in recog_word (word=0x826e9f0, denorm=0x826be54,
matcher=0x80684a0 <tess_default_matcher(PBLOB*, PBLOB*, PBLOB*, WERD*, DENORM*, BLOB_CHOICE_LIST&)>, tester=0, trainer=0, testing=0 '\0', raw_choice=@0x826be7c, blob_choices=0xbf8162b8,
outword=@0x826be50) at tfacepp.cpp:90

I don't think it's related to issue 1546972

It is dependent on the specific image - recreating a new TIF with pbmtext of the contained text does not crash. Also, scaling image -2.0 or +2.0 does not crash - just this one does.

Argh, image too big for sf.net - see
http://tesseract-ocr.repairfaq.org/downloads/b37by2.tif

Discussion