Index: NVDataMgmt.c =================================================================== diff -u -r5ed781a9474910ff9db65e4ef0ab995e03e312fa -r20b126271232f1b3c4a7aef9fa6fe1f9e9b019e6 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision 5ed781a9474910ff9db65e4ef0ab995e03e312fa) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision 20b126271232f1b3c4a7aef9fa6fe1f9e9b019e6) @@ -1413,6 +1413,10 @@ nvDataStartPtr = (U08*)&hdCalibrationRecord.hdCalibrationGroups.accelerometerSensorCalRecord; isNVDataValid = ( 0 == hdCalibrationRecord.hdCalibrationGroups.accelerometerSensorCalRecord.calibrationTime ? FALSE : TRUE ); break; + + default: + // TODO software fault + break; #endif #ifdef _DG_ @@ -1501,12 +1505,16 @@ nvDataStartPtr = (U08*)&dgServiceGroup.dgServiceRecord; nvDataLength = sizeof( dgServiceGroup.dgServiceRecord ); break; + + default: + // TODO software fault + break; #endif } // Make sure the provided buffer length is >= NV Data Length in the NV data management so the memory of the other variables is not // overridden. - if ( bufferLength >= nvDataLength ) + if ( ( bufferLength >= nvDataLength ) && ( nvDataStartPtr != 0 ) ) { // Copy the data into the provided buffer memcpy( bufferAddress, nvDataStartPtr, bufferLength );