You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-packaging/opensuse/core/qt3/mng-reading-fix.patch

31 lines
967 B

--- src/kernel/qmngio.cpp.sav 2007-02-23 14:01:19.000000000 +0100
+++ src/kernel/qmngio.cpp 2007-08-28 15:27:28.000000000 +0200
@@ -411,8 +411,11 @@ int QMNGFormat::decode( QImage& img, QIm
}
losttime += losingtimer.elapsed();
- if ( ndata || !length )
- mng_display_resume(handle);
+ bool needmore = false;
+ if ( ndata ) {
+ mng_retcode r = mng_display_resume(handle);
+ needmore = ( r == MNG_NEEDMOREDATA );
+ }
losingtimer.start();
image = 0;
@@ -422,6 +425,13 @@ int QMNGFormat::decode( QImage& img, QIm
// Move back unused tail
memcpy(buffer,buffer+ubuffer,nbuffer);
}
+ // "The function should return without processing all the data if it reaches the end of a frame in the input."
+ if( ndata && !needmore ) {
+ length -= ndata;
+ ndata = 0;
+ if( length == 0 ) // 0 means done, process at least one byte
+ length = ndata = 1;
+ }
if ( ndata ) {
// Not all used.
enlargeBuffer(nbuffer+ndata);