adaptationlayer/tsy/simatktsy_dll/src/satutil.cpp
changeset 8 6295dc2169f3
parent 5 8ccc39f9d787
child 9 8486d82aef45
--- 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 );
         }
     }