Ошибка разбивки стека PoDoFo C++ с использованием PdfMemDocument

Я новичок в использовании PoDoFo в C++, но у меня есть проблемы с использованием PdfMemDocument. Кажется, в lib есть ошибка, но я не уверен.

мой код:

PoDoFo::PdfMemDocument document;

long len = buffer.size();
document.Load( reinterpret_cast<char*>( buffer.getBuffer() ) , len );

for (int pn = 0; pn < document.GetPageCount(); ++pn)
{
   auto* page = document.GetPage( pn );
   page->SetRotation( rotation );
}

PoDoFo::PdfOutputDevice output( reinterpret_cast<char*>( buffer.getBuffer() ), buffer.size() );
document.Write( &output );
output.Read( reinterpret_cast<char*>( buffer.getBuffer() ), buffer.size() );
buffer.setSize( output.GetLength() );

Буфер содержит правильные данные. Я проверил это. Ошибка стека возникает при завершении программы. Трассировки стека:

#0 0xf7710be9 in __kernel_vsyscall ()
#1 0xf673dea9 in raise () from /lib/i386-linux-gnu/libc.so.6
#2 0xf673f4d8 in abort () from /lib/i386-linux-gnu/libc.so.6
#3 0xf677937c in ?? () from /lib/i386-linux-gnu/libc.so.6
#4 0xf6809548 in __fortify_fail () from /lib/i386-linux-gnu/libc.so.6
#5 0xf68094d8 in __stack_chk_fail () from /lib/i386-linux-gnu/libc.so.6
#60x0805af74 in __stack_chk_fail_local ()

проблема также возникает, если я генерирую только объект PdfMemDocument в конце моей Программы.

Спасибо за помощь

0 ответов

Другие вопросы по тегам