valgrind memcheck see serious leak on TessBaseAPI

20 views
Skip to first unread message

Fish Money

unread,
Jul 27, 2023, 2:20:50 PM7/27/23
to tesseract-ocr
Working on memory leaks, just faced that valgrind memcheck see serious leak on TessBaseAPI initialization call

api4->Init

is there any way to fix this?

UPDATE:
if valgrind memcheck  api sample from official Tesseract site
it gives same warning

This issue 100% was already discussed :)
Please advise if you have any solution

#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>

int main()
{
    char *outText;

    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
    // Initialize tesseract-ocr with English, without specifying tessdata path
    if (api->Init(NULL, "eng")) {
        fprintf(stderr, "Could not initialize tesseract.\n");
        exit(1);
    }

    // Open input image with leptonica library
    Pix *image = pixRead("/usr/src/tesseract/testing/phototest.tif");
    api->SetImage(image);
    // Get OCR result
    outText = api->GetUTF8Text();
    printf("OCR output:\n%s", outText);

    // Destroy used object and release memory
    api->End();
    delete api;
    delete [] outText;
    pixDestroy(&image);

    return 0;
}


void Name::test(){
tesseract::TessBaseAPI *api4 = new tesseract::TessBaseAPI();
api4->Init("/usr/share/tesseract-ocr/4.00/tessdata/", "eng");
}

==15652== Conditional jump or move depends on uninitialised value(s)
==15652==    at 0xA49B60D: nextOnPixelInRaster (in /usr/lib/x86_64-linux-gnu/liblept.so.5.0.4)
==15652==    by 0xA49C85D: pixConnCompBB (in /usr/lib/x86_64-linux-gnu/liblept.so.5.0.4)
==15652==    by 0xA450E80: ??? (in /usr/lib/x86_64-linux-gnu/liblept.so.5.0.4)
==15652==    by 0xA451494: ??? (in /usr/lib/x86_64-linux-gnu/liblept.so.5.0.4)
==15652==    by 0xA451EFA: bmfCreate (in /usr/lib/x86_64-linux-gnu/liblept.so.5.0.4)
==15652==    by 0x57965BF: tesseract::Tesseract::Tesseract() (in /usr/lib/x86_64-linux-gnu/libtesseract.so.4.0.1)
==15652==    by 0x574E396: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(STRING const&, GenericVector<char>*)) (in /usr/lib/x86_64-linux-gnu/libtesseract.so.4.0.1)
==15652==    by 0x574E7C9: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (in /usr/lib/x86_64-linux-gnu/libtesseract.so.4.0.1)
==15652==    by 0x14B528: tesseract::TessBaseAPI::Init(char const*, char const*) (baseapi.h:224)
==15652==    by 0x14B225: Name::test() (Name.cpp:64)
==15652==    by 0x184A70: main (main.cpp:69)
Reply all
Reply to author
Forward
0 new messages