@@ -117,7 +117,7 @@ handle_io_progress(Request *req)
117117{
118118 NPError err ;
119119 size_t bytesAvailable ;
120- uint32_t writeSize ;
120+ int32_t writeSize ;
121121 int32_t bytesConsumed ;
122122 uint8_t * dataPtr ;
123123
@@ -143,20 +143,21 @@ handle_io_progress(Request *req)
143143 /* streaming in progress AND data available */
144144 dbglogmsg ("> NPP_WriteReady %s %d\n" , req -> originalUrl , bytesAvailable );
145145 writeSize = pluginFuncs .writeready (& npp , req -> stream );
146- writeSize = MIN (writeSize , bytesAvailable );
147-
148- dbglogmsg ("> NPP_Write %s %d\n" , req -> originalUrl , writeSize );
149- dataPtr = req -> buf + req -> writePtr ;
150- bytesConsumed = pluginFuncs .write (& npp , req -> stream , req -> bytesWritten , writeSize , dataPtr );
151- if (bytesConsumed < 0 ) {
152- logmsg ("write error %d\n" , bytesConsumed );
153- cancel_request (req );
154- } else if ((uint32_t )bytesConsumed < writeSize ) {
155- logmsg ("not enough bytes consumed %d < %d\n" , bytesConsumed , writeSize );
156- cancel_request (req );
157- } else {
158- req -> bytesWritten += bytesConsumed ;
159- req -> writePtr += bytesConsumed ;
146+ if (writeSize > 0 ) {
147+ writeSize = MIN (writeSize , bytesAvailable );
148+ dbglogmsg ("> NPP_Write %s %d\n" , req -> originalUrl , writeSize );
149+ dataPtr = req -> buf + req -> writePtr ;
150+ bytesConsumed = pluginFuncs .write (& npp , req -> stream , req -> bytesWritten , writeSize , dataPtr );
151+ if (bytesConsumed < 0 ) {
152+ logmsg ("write error %d\n" , bytesConsumed );
153+ cancel_request (req );
154+ } else if ((uint32_t )bytesConsumed < writeSize ) {
155+ logmsg ("not enough bytes consumed %d < %d\n" , bytesConsumed , writeSize );
156+ cancel_request (req );
157+ } else {
158+ req -> bytesWritten += bytesConsumed ;
159+ req -> writePtr += bytesConsumed ;
160+ }
160161 }
161162 }
162163
0 commit comments