--- a/adaptationlayer/tsy/simatktsy_dll/src/satutil.cpp Wed Feb 17 13:58:55 2010 +0200
+++ b/adaptationlayer/tsy/simatktsy_dll/src/satutil.cpp Wed Apr 21 14:29:55 2010 +0300
@@ -1045,34 +1045,40 @@
aBerTlv.TlvByTagValue( &duration, KTlvDurationTag ) );
if ( KErrNotFound != returnValue )
{
- TUint8 durationTimeUnit = duration.GetShortInfo( ETLV_TimeUnit );
- switch ( durationTimeUnit )
+ // Check if Duration TLV has real data
+ if ( duration.GetLength() )
{
- case KMinutes:
- {
- // Minutes
- aTDuration.iTimeUnit = RSat::EMinutes;
- break;
- }
- case KSeconds:
+ TUint8 durationTimeUnit( duration.GetShortInfo( ETLV_TimeUnit ) );
+ switch ( durationTimeUnit )
{
- // Seconds
- aTDuration.iTimeUnit = RSat::ESeconds;
- break;
+ case KMinutes:
+ {
+ // Minutes
+ aTDuration.iTimeUnit = RSat::EMinutes;
+ break;
+ }
+ case KSeconds:
+ {
+ // Seconds
+ aTDuration.iTimeUnit = RSat::ESeconds;
+ break;
+ }
+ case KTenthsOfSeconds:
+ {
+ // Tenths of seconds
+ aTDuration.iTimeUnit = RSat::ETenthsOfSeconds;
+ break;
+ }
+ default:
+ {
+ aTDuration.iTimeUnit = RSat::ETimeUnitNotSet;
+ break;
+ }
}
- case KTenthsOfSeconds:
- {
- // Tenths of seconds
- aTDuration.iTimeUnit = RSat::ETenthsOfSeconds;
- break;
- }
- default:
- {
- aTDuration.iTimeUnit = RSat::ETimeUnitNotSet;
- }
+ // Time interval
+ aTDuration.iNumOfUnits =
+ duration.GetShortInfo( ETLV_TimeInteval );
}
- // Time interval
- aTDuration.iNumOfUnits = duration.GetShortInfo( ETLV_TimeInteval );
}
}