diff -r 685c7418c584 -r 69ec17276f52 htiui/HtiServicePlugins/HtiKeyEventServicePlugin/src/PointerEventHandler.cpp --- a/htiui/HtiServicePlugins/HtiKeyEventServicePlugin/src/PointerEventHandler.cpp Fri Mar 12 15:42:49 2010 +0200 +++ b/htiui/HtiServicePlugins/HtiKeyEventServicePlugin/src/PointerEventHandler.cpp Mon Mar 15 12:40:36 2010 +0200 @@ -141,6 +141,7 @@ { PointerUp(); SendOkMsgL(); + iAdvPointerMoveArray.ResetAndDestroy(); iReady = ETrue; } } @@ -525,7 +526,13 @@ TTimeIntervalMicroSeconds32 eventDelay = ( aData[offset] + ( aData[offset+1] << 8 ) ) * 1000; offset += 2; HTI_LOG_FORMAT( "Event time = %d", eventDelay.Int() ); - + + if (eventDelay.Int()<=0) + { + SendErrorMessageL( EInvalidParameters, KErrorInvalidParameters ); + return; + } + TInt stepCount = aData[offset] + ( aData[offset+1] << 8 ); offset += 2; HTI_LOG_FORMAT( "Step Count = %d", stepCount ); @@ -541,6 +548,12 @@ { TInt pointNumber,X1, Y1, Z1,X2,Y2, Z2 ; + // invalid pointer array + if ((dataLength-offset)<3*2*2+1) + { + SendErrorMessageL( EInvalidParameters, KErrorInvalidParameters ); + return; + } // start point pointNumber = aData[offset]; offset += 1;