OCR - jumps based on uninitialised values #257

Closed
opened 2026-01-29 16:39:09 +00:00 by claunia · 14 comments
Owner

Originally created by @cfsmp3 on GitHub (Jan 24, 2017).

Originally assigned to: @Abhinav95 on GitHub.

==22257== Conditional jump or move depends on uninitialised value(s)
==22257== at 0x428EC5: compare_rect_by_ypos (ocr.c:705)
==22257== by 0x454991: shell_sort (ccx_encoders_helpers.c:459)
==22257== by 0x428FBF: paraof_ocrtext (ocr.c:749)
==22257== by 0x44E7B3: write_cc_bitmap_as_srt (ccx_encoders_srt.c:103)
==22257== by 0x42D83C: encode_sub (ccx_encoders_common.c:1174)
==22257== by 0x43B7F6: dinit_libraries (lib_ccx.c:227)
==22257== by 0x407CB4: main (ccextractor.c:435)

Originally created by @cfsmp3 on GitHub (Jan 24, 2017). Originally assigned to: @Abhinav95 on GitHub. ==22257== Conditional jump or move depends on uninitialised value(s) ==22257== at 0x428EC5: compare_rect_by_ypos (ocr.c:705) ==22257== by 0x454991: shell_sort (ccx_encoders_helpers.c:459) ==22257== by 0x428FBF: paraof_ocrtext (ocr.c:749) ==22257== by 0x44E7B3: write_cc_bitmap_as_srt (ccx_encoders_srt.c:103) ==22257== by 0x42D83C: encode_sub (ccx_encoders_common.c:1174) ==22257== by 0x43B7F6: dinit_libraries (lib_ccx.c:227) ==22257== by 0x407CB4: main (ccextractor.c:435)
claunia added the needs-confirmation-of-being-brokendifficulty: easyOCR labels 2026-01-29 16:39:09 +00:00
Author
Owner

@cfsmp3 commented on GitHub (Jan 26, 2017):

GSoC qualification: This issue gives 2 points.

@cfsmp3 commented on GitHub (Jan 26, 2017): GSoC qualification: This issue gives 2 points.
Author
Owner

@siddharthjindal1997 commented on GitHub (Feb 22, 2017):

@cfsmp3 can you please explain the issue. i would love to work on it .
thanks.

@siddharthjindal1997 commented on GitHub (Feb 22, 2017): @cfsmp3 can you please explain the issue. i would love to work on it . thanks.
Author
Owner

@cfsmp3 commented on GitHub (Feb 22, 2017):

@siddharthjindal1997 The issue description gives all the info :-) Running CCExtractor on valgrind we get those messages. If you check the code, it seems to happen here:

int compare_rect_by_ypos(const voidp1, const void p2, voidarg)
{
const struct cc_bitmap
r1 = p1;
const struct cc_bitmap* r2 = p2;
if(r1->y > r2->y)

We know that r1 and r2 are initialized because that happens there, but looks like r1->y and/or r2->y are not. So the job would be to find out in which circumstances it's possible that compare_rect_by_ypos () is called without its parameters having been initialized.

@cfsmp3 commented on GitHub (Feb 22, 2017): @siddharthjindal1997 The issue description gives all the info :-) Running CCExtractor on valgrind we get those messages. If you check the code, it seems to happen here: int compare_rect_by_ypos(const void*p1, const void *p2, void*arg) { const struct cc_bitmap* r1 = p1; const struct cc_bitmap* r2 = p2; if(r1->y > r2->y) We know that r1 and r2 are initialized because that happens there, but looks like r1->y and/or r2->y are not. So the job would be to find out in which circumstances it's possible that compare_rect_by_ypos () is called without its parameters having been initialized.
Author
Owner

@mahalwal commented on GitHub (Oct 17, 2017):

@cfsmp3 hey can you please tell how to generate the same memcheck? I was doing valgrind --leak-check=yes /linux/./build Is this the right way?

@mahalwal commented on GitHub (Oct 17, 2017): @cfsmp3 hey can you please tell how to generate the same memcheck? I was doing `valgrind --leak-check=yes /linux/./build` Is this the right way?
Author
Owner

@saurabhshri commented on GitHub (Oct 20, 2017):

@mahalwal That’s the Valrgind output while processing a file which uses OCR (e.g. a DVB file). So, you'd want to do valgrind --leak-check=yes ./ccextractor /path/to/file/ <options> . If you're looking for samples, find some at https://sampleplatform.ccextractor.org/sample or https://www.ccextractor.org/public:general:tvsamples .

@saurabhshri commented on GitHub (Oct 20, 2017): @mahalwal That’s the Valrgind output while processing a file which uses OCR (e.g. a DVB file). So, you'd want to do ` valgrind --leak-check=yes ./ccextractor /path/to/file/ <options>` . If you're looking for samples, find some at https://sampleplatform.ccextractor.org/sample or https://www.ccextractor.org/public:general:tvsamples .
Author
Owner

@Sudoxo commented on GitHub (Jan 19, 2020):

I would like to work on it, but I have never run ccextractor with file which uses OCR. Could someone tell me what commands/options need to be used?

@Sudoxo commented on GitHub (Jan 19, 2020): I would like to work on it, but I have never run ccextractor with file which uses OCR. Could someone tell me what commands/options need to be used?
Author
Owner

@NilsIrl commented on GitHub (Jan 19, 2020):

Nothing specific has to be done.

You can use the EastEnders file to test.

@NilsIrl commented on GitHub (Jan 19, 2020): Nothing specific has to be done. You can use the EastEnders file to test.
Author
Owner

@Sudoxo commented on GitHub (Jan 19, 2020):

Building with ./build, and running with ./ccextractor /home/BBC1.mp4 gives me empty .srt file and it says: no captions were found in input
Are you sure that nothing specific has to be done?

link to folder with that BBC1.mp4: https://drive.google.com/drive/folders/0B_61ywKPmI0TYk9vMzhHU2QtdVk

@Sudoxo commented on GitHub (Jan 19, 2020): Building with `./build`, and running with `./ccextractor /home/BBC1.mp4` gives me empty .srt file and it says: _no captions were found in input_ Are you sure that nothing specific has to be done? link to folder with that BBC1.mp4: https://drive.google.com/drive/folders/0B_61ywKPmI0TYk9vMzhHU2QtdVk
Author
Owner

@NilsIrl commented on GitHub (Jan 19, 2020):

try with the first one from https://drive.google.com/drive/folders/0B_61ywKPmI0TUUk5LXJPeG1feFE

@NilsIrl commented on GitHub (Jan 19, 2020): try with the first one from https://drive.google.com/drive/folders/0B_61ywKPmI0TUUk5LXJPeG1feFE
Author
Owner

@Sudoxo commented on GitHub (Jan 19, 2020):

Running valgrind with that file which @NilsIrl mentioned, gives me a lot of info, but I don't have this specific one: https://github.com/CCExtractor/ccextractor/issues/662#issue-202700471

The only one with uninitalised value(s) I have is:

==8422== Conditional jump or move depends on uninitialised value(s)
==8422==    at 0x51E5DF7: tesseract::Tesseract::quality_based_rejection(PAGE_RES_IT&, unsigned char) (in /usr/lib/libtesseract.so.3.0.4)
==8422==    by 0x51D928A: tesseract::Tesseract::rejection_passes(PAGE_RES*, ETEXT_DESC*, TBOX const*, char const*) (in /usr/lib/libtesseract.so.3.0.4)
==8422==    by 0x51E05D6: tesseract::Tesseract::recog_all_words(PAGE_RES*, ETEXT_DESC*, TBOX const*, char const*, int) (in /usr/lib/libtesseract.so.3.0.4)
==8422==    by 0x51CB064: tesseract::TessBaseAPI::Recognize(ETEXT_DESC*) (in /usr/lib/libtesseract.so.3.0.4)
==8422==    by 0x4264AF: ocr_bitmap (ocr.c:362)
==8422==    by 0x42864E: ocr_rect (ocr.c:920)
==8422==    by 0x43F315: write_dvb_sub (dvb_subtitle_decoder.c:1666)
==8422==    by 0x43F65C: dvbsub_handle_display_segment (dvb_subtitle_decoder.c:1721)
==8422==    by 0x43FADB: dvbsub_decode (dvb_subtitle_decoder.c:1829)
==8422==    by 0x40F62D: process_data (general_loop.c:651)
==8422==    by 0x410616: general_loop (general_loop.c:1028)
==8422==    by 0x407309: api_start (ccextractor.c:214)
@Sudoxo commented on GitHub (Jan 19, 2020): Running valgrind with that file which @NilsIrl mentioned, gives me a lot of info, but I don't have this specific one: https://github.com/CCExtractor/ccextractor/issues/662#issue-202700471 The only one with uninitalised value(s) I have is: ``` ==8422== Conditional jump or move depends on uninitialised value(s) ==8422== at 0x51E5DF7: tesseract::Tesseract::quality_based_rejection(PAGE_RES_IT&, unsigned char) (in /usr/lib/libtesseract.so.3.0.4) ==8422== by 0x51D928A: tesseract::Tesseract::rejection_passes(PAGE_RES*, ETEXT_DESC*, TBOX const*, char const*) (in /usr/lib/libtesseract.so.3.0.4) ==8422== by 0x51E05D6: tesseract::Tesseract::recog_all_words(PAGE_RES*, ETEXT_DESC*, TBOX const*, char const*, int) (in /usr/lib/libtesseract.so.3.0.4) ==8422== by 0x51CB064: tesseract::TessBaseAPI::Recognize(ETEXT_DESC*) (in /usr/lib/libtesseract.so.3.0.4) ==8422== by 0x4264AF: ocr_bitmap (ocr.c:362) ==8422== by 0x42864E: ocr_rect (ocr.c:920) ==8422== by 0x43F315: write_dvb_sub (dvb_subtitle_decoder.c:1666) ==8422== by 0x43F65C: dvbsub_handle_display_segment (dvb_subtitle_decoder.c:1721) ==8422== by 0x43FADB: dvbsub_decode (dvb_subtitle_decoder.c:1829) ==8422== by 0x40F62D: process_data (general_loop.c:651) ==8422== by 0x410616: general_loop (general_loop.c:1028) ==8422== by 0x407309: api_start (ccextractor.c:214) ```
Author
Owner

@NilsIrl commented on GitHub (Jan 19, 2020):

You can fix this one if you want

@NilsIrl commented on GitHub (Jan 19, 2020): You can fix this one if you want
Author
Owner

@kdrag0n commented on GitHub (Jan 21, 2020):

I believe this issue has already been fixed by some commit after the issue was opened, since I can't reproduce it either.

I'm only getting uninitialized jump/move messages from internal Tesseract code (allocated inside Tesseract), which is out of the scope of this project:

==1200597== Conditional jump or move depends on uninitialised value(s)
==1200597==    at 0x4F294FC: nextOnPixelInRaster (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4F2A82C: pixConnCompBB (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDDB93: ??? (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDE2DF: ??? (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDEC89: bmfCreate (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4AED0D5: tesseract::Tesseract::Tesseract() (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4A9CAC0: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(char const*, GenericVector<char>*)) (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4A9D016: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4AA8E37: TessBaseAPIInit4 (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x24BA54: init_ocr (ocr.c:193)
==1200597==    by 0x281C16: dvbsub_init_decoder (dvb_subtitle_decoder.c:448)
==1200597==    by 0x262C22: parse_PMT (ts_tables.c:357)
==1200597==  Uninitialised value was created by a heap allocation
==1200597==    at 0x483877F: malloc (vg_replace_malloc.c:309)
==1200597==    by 0x4FC4442: pixCreateNoInit (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4FC9B39: pixRemoveBorderGeneral (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4F94C25: pixCloseSafeBrick (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDDB7B: ??? (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDE2DF: ??? (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDEC89: bmfCreate (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4AED0D5: tesseract::Tesseract::Tesseract() (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4A9CAC0: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(char const*, GenericVector<char>*)) (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4A9D016: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4AA8E37: TessBaseAPIInit4 (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x24BA54: init_ocr (ocr.c:193)
==1200597== 
==1200597== Conditional jump or move depends on uninitialised value(s)
==1200597==    at 0x4F295C0: nextOnPixelInRaster (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4F2A82C: pixConnCompBB (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDDB93: ??? (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDE2DF: ??? (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDEC89: bmfCreate (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4AED0D5: tesseract::Tesseract::Tesseract() (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4A9CAC0: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(char const*, GenericVector<char>*)) (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4A9D016: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4AA8E37: TessBaseAPIInit4 (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x24BA54: init_ocr (ocr.c:193)
==1200597==    by 0x281C16: dvbsub_init_decoder (dvb_subtitle_decoder.c:448)
==1200597==    by 0x262C22: parse_PMT (ts_tables.c:357)
==1200597==  Uninitialised value was created by a heap allocation
==1200597==    at 0x483877F: malloc (vg_replace_malloc.c:309)
==1200597==    by 0x4FC4442: pixCreateNoInit (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4FC9B39: pixRemoveBorderGeneral (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4F94C25: pixCloseSafeBrick (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDDB7B: ??? (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDE2DF: ??? (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4EDEC89: bmfCreate (in /usr/lib/liblept.so.5.0.3)
==1200597==    by 0x4AED0D5: tesseract::Tesseract::Tesseract() (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4A9CAC0: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(char const*, GenericVector<char>*)) (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4A9D016: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x4AA8E37: TessBaseAPIInit4 (in /usr/lib/libtesseract.so.5.0.0)
==1200597==    by 0x24BA54: init_ocr (ocr.c:193)
@kdrag0n commented on GitHub (Jan 21, 2020): I believe this issue has already been fixed by some commit after the issue was opened, since I can't reproduce it either. I'm only getting uninitialized jump/move messages from internal Tesseract code (allocated *inside* Tesseract), which is out of the scope of this project: ``` ==1200597== Conditional jump or move depends on uninitialised value(s) ==1200597== at 0x4F294FC: nextOnPixelInRaster (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4F2A82C: pixConnCompBB (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDDB93: ??? (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDE2DF: ??? (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDEC89: bmfCreate (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4AED0D5: tesseract::Tesseract::Tesseract() (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4A9CAC0: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(char const*, GenericVector<char>*)) (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4A9D016: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4AA8E37: TessBaseAPIInit4 (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x24BA54: init_ocr (ocr.c:193) ==1200597== by 0x281C16: dvbsub_init_decoder (dvb_subtitle_decoder.c:448) ==1200597== by 0x262C22: parse_PMT (ts_tables.c:357) ==1200597== Uninitialised value was created by a heap allocation ==1200597== at 0x483877F: malloc (vg_replace_malloc.c:309) ==1200597== by 0x4FC4442: pixCreateNoInit (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4FC9B39: pixRemoveBorderGeneral (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4F94C25: pixCloseSafeBrick (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDDB7B: ??? (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDE2DF: ??? (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDEC89: bmfCreate (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4AED0D5: tesseract::Tesseract::Tesseract() (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4A9CAC0: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(char const*, GenericVector<char>*)) (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4A9D016: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4AA8E37: TessBaseAPIInit4 (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x24BA54: init_ocr (ocr.c:193) ==1200597== ==1200597== Conditional jump or move depends on uninitialised value(s) ==1200597== at 0x4F295C0: nextOnPixelInRaster (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4F2A82C: pixConnCompBB (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDDB93: ??? (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDE2DF: ??? (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDEC89: bmfCreate (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4AED0D5: tesseract::Tesseract::Tesseract() (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4A9CAC0: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(char const*, GenericVector<char>*)) (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4A9D016: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4AA8E37: TessBaseAPIInit4 (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x24BA54: init_ocr (ocr.c:193) ==1200597== by 0x281C16: dvbsub_init_decoder (dvb_subtitle_decoder.c:448) ==1200597== by 0x262C22: parse_PMT (ts_tables.c:357) ==1200597== Uninitialised value was created by a heap allocation ==1200597== at 0x483877F: malloc (vg_replace_malloc.c:309) ==1200597== by 0x4FC4442: pixCreateNoInit (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4FC9B39: pixRemoveBorderGeneral (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4F94C25: pixCloseSafeBrick (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDDB7B: ??? (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDE2DF: ??? (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4EDEC89: bmfCreate (in /usr/lib/liblept.so.5.0.3) ==1200597== by 0x4AED0D5: tesseract::Tesseract::Tesseract() (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4A9CAC0: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(char const*, GenericVector<char>*)) (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4A9D016: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x4AA8E37: TessBaseAPIInit4 (in /usr/lib/libtesseract.so.5.0.0) ==1200597== by 0x24BA54: init_ocr (ocr.c:193) ```
Author
Owner

@cfsmp3 commented on GitHub (Jan 25, 2020):

@kdrag0n but are you sure it's not because we are passing uninitialized values to tesseract?

@cfsmp3 commented on GitHub (Jan 25, 2020): @kdrag0n but are you sure it's not because _we_ are passing uninitialized values to tesseract?
Author
Owner

@kdrag0n commented on GitHub (Jan 26, 2020):

According to the stack trace, Tesseract allocated the uninitialized memory during initialization, not us. Valgrind doesn't complain when I add code right above the call to Tesseract to dump all of the values being passed to it, so it shouldn't be caused by the inputs.

@kdrag0n commented on GitHub (Jan 26, 2020): According to the stack trace, Tesseract allocated the uninitialized memory during initialization, not us. Valgrind doesn't complain when I add code right above the call to Tesseract to dump all of the values being passed to it, so it shouldn't be caused by the inputs.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ccextractor#257