(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-gsm_map.c) |
| |
| 16723 | | | static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) { |
| 16724 | | | |
| 16725 | | | proto_item *cause; |
| 16726 | | | |
| 16727 | | | switch(opcode){ |
| 16728 | | | case 2: |
| 16729 | | | offset=dissect_gsm_map_ms_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1); |
| 16730 | | | break; |
| 16731 | | | case 3: |
| 16732 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16733 | | | FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity, |
| 16734 | | | FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity, |
| 16735 | | | TRUE , dissect_gsm_map_ms_CancelLocationArg, -1); |
| 16736 | | | break; |
| 16737 | | | case 4: |
| 16738 | | | offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1); |
| 16739 | | | break; |
| 16740 | | | case 5: |
| 16741 | | | offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1); |
| 16742 | | | break; |
| 16743 | | | case 6: |
| 16744 | | | offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1); |
| 16745 | | | break; |
| 16746 | | | case 7: |
| 16747 | | | offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); |
| 16748 | | | break; |
| 16749 | | | case 8: |
| 16750 | | | offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); |
| 16751 | | | break; |
| 16752 | | | |
| 16753 | | | |
| 16754 | | | case 10: |
| 16755 | | | offset=(FALSE, tvb, offset, actx, tree, -1); |
| 16756 | | | break; |
| 16757 | | | case 11: |
| 16758 | | | offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); |
| 16759 | | | break; |
| 16760 | | | case 12: |
| 16761 | | | offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); |
| 16762 | | | break; |
| 16763 | | | case 13: |
| 16764 | | | offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); |
| 16765 | | | break; |
| 16766 | | | case 14: |
| 16767 | | | offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); |
| 16768 | | | break; |
| 16769 | | | case 15: |
| 16770 | | | offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1); |
| 16771 | | | break; |
| 16772 | | | case 16: |
| 16773 | | | offset=dissect_gsm_ss_NotifySS_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16774 | | | break; |
| 16775 | | | case 17: |
| 16776 | | | offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); |
| 16777 | | | break; |
| 16778 | | | case 18: |
| 16779 | | | offset=dissect_gsm_old_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword); |
| 16780 | | | break; |
| 16781 | | | case 19: |
| 16782 | | | offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData); |
| 16783 | | | break; |
| 16784 | | | case 20: |
| 16785 | | | offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1); |
| 16786 | | | break; |
| 16787 | | | case 21: |
| 16788 | | | offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16789 | | | break; |
| 16790 | | | case 22: |
| 16791 | | | if (application_context_version == 3){ |
| 16792 | | | offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1); |
| 16793 | | | }else{ |
| 16794 | | | offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1); |
| 16795 | | | } |
| 16796 | | | break; |
| 16797 | | | case 23: |
| 16798 | | | offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1); |
| 16799 | | | break; |
| 16800 | | | case 24: |
| 16801 | | | offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1); |
| 16802 | | | break; |
| 16803 | | | case 25: |
| 16804 | | | offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1); |
| 16805 | | | break; |
| 16806 | | | case 26: |
| 16807 | | | offset=dissect_gsm_map_ms_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1); |
| 16808 | | | break; |
| 16809 | | | |
| 16810 | | | |
| 16811 | | | case 29: |
| 16812 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16813 | | | FALSE, NULL, -1, |
| 16814 | | | FALSE, dissect_gsm_old_Bss_APDU, -1, |
| 16815 | | | TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1); |
| 16816 | | | break; |
| 16817 | | | |
| 16818 | | | case 31: |
| 16819 | | | offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1); |
| 16820 | | | break; |
| 16821 | | | case 32: |
| 16822 | | | offset=dissect_gsm_old_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1); |
| 16823 | | | break; |
| 16824 | | | case 33: |
| 16825 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16826 | | | FALSE, NULL, -1, |
| 16827 | | | FALSE, dissect_gsm_old_Bss_APDU, -1, |
| 16828 | | | TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1); |
| 16829 | | | break; |
| 16830 | | | case 34: |
| 16831 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16832 | | | FALSE, NULL, -1, |
| 16833 | | | FALSE, dissect_gsm_old_Bss_APDU, -1, |
| 16834 | | | TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1); |
| 16835 | | | break; |
| 16836 | | | |
| 16837 | | | |
| 16838 | | | case 37: |
| 16839 | | | offset=dissect_gsm_map_ms_ResetArg(FALSE, tvb, offset, actx, tree, -1); |
| 16840 | | | break; |
| 16841 | | | case 38: |
| 16842 | | | return offset; |
| 16843 | | | break; |
Unreachable Control Flow
The highlighted code will not execute under any circumstances. This may be because of: |
|
| 16844 | | | case 39: |
| 16845 | | | offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1); |
| 16846 | | | break; |
| 16847 | | | case 40: |
| 16848 | | | offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1); |
| 16849 | | | break; |
| 16850 | | | case 41: |
| 16851 | | | offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); |
| 16852 | | | break; |
| 16853 | | | case 42: |
| 16854 | | | offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); |
| 16855 | | | break; |
| 16856 | | | case 43: |
| 16857 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16858 | | | FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei, |
| 16859 | | | FALSE, dissect_gsm_map_ms_CheckIMEI_Arg, -1, |
| 16860 | | | TRUE , NULL, -1); |
| 16861 | | | break; |
| 16862 | | | case 44: |
| 16863 | | | if (application_context_version == 3) |
| 16864 | | | offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16865 | | | else { |
| 16866 | | | offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16867 | | | } |
| 16868 | | | break; |
| 16869 | | | case 45: |
| 16870 | | | offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16871 | | | break; |
| 16872 | | | case 46: |
| 16873 | | | if (application_context_version == 3) |
| 16874 | | | offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16875 | | | else { |
| 16876 | | | offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16877 | | | } |
| 16878 | | | break; |
| 16879 | | | case 47: |
| 16880 | | | offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1); |
| 16881 | | | break; |
| 16882 | | | |
| 16883 | | | |
| 16884 | | | |
| 16885 | | | |
| 16886 | | | |
| 16887 | | | |
| 16888 | | | case 49: |
| 16889 | | | offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); |
| 16890 | | | break; |
| 16891 | | | case 50: |
| 16892 | | | offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); |
| 16893 | | | break; |
| 16894 | | | case 51: |
| 16895 | | | offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); |
| 16896 | | | break; |
| 16897 | | | |
| 16898 | | | |
| 16899 | | | case 54: |
| 16900 | | | offset=dissect_gsm_ss_BeginSubscriberActivityArg(FALSE, tvb, offset, actx, tree, -1); |
| 16901 | | | break; |
| 16902 | | | case 55: |
| 16903 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16904 | | | FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi, |
| 16905 | | | FALSE, dissect_gsm_map_ms_SendIdentificationArg, -1, |
| 16906 | | | TRUE, NULL, -1); |
| 16907 | | | break; |
| 16908 | | | case 56: |
| 16909 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16910 | | | FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, |
| 16911 | | | FALSE, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1, |
| 16912 | | | TRUE, NULL, -1); |
| 16913 | | | break; |
| 16914 | | | case 57: |
| 16915 | | | offset=dissect_gsm_map_ms_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1); |
| 16916 | | | break; |
| 16917 | | | case 58: |
| 16918 | | | offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn); |
| 16919 | | | break; |
| 16920 | | | case 59: |
| 16921 | | | offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16922 | | | break; |
| 16923 | | | case 60: |
| 16924 | | | offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16925 | | | break; |
| 16926 | | | case 61: |
| 16927 | | | offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16928 | | | break; |
| 16929 | | | case 62: |
| 16930 | | | offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1); |
| 16931 | | | break; |
| 16932 | | | case 63: |
| 16933 | | | offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); |
| 16934 | | | break; |
| 16935 | | | case 64: |
| 16936 | | | offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); |
| 16937 | | | break; |
| 16938 | | | case 65: |
| 16939 | | | offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1); |
| 16940 | | | break; |
| 16941 | | | case 66: |
| 16942 | | | offset=dissect_gsm_map_sm_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16943 | | | break; |
| 16944 | | | case 67: |
| 16945 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16946 | | | FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, |
| 16947 | | | FALSE, dissect_gsm_old_PurgeMSArgV2, -1, |
| 16948 | | | TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1); |
| 16949 | | | break; |
| 16950 | | | case 68: |
| 16951 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16952 | | | FALSE, NULL, -1, |
| 16953 | | | FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1, |
| 16954 | | | TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1); |
| 16955 | | | break; |
| 16956 | | | case 69: |
| 16957 | | | offset=dissect_mc_message(tvb, offset, actx, tree, |
| 16958 | | | FALSE, NULL, -1, |
| 16959 | | | FALSE, NULL, -1, |
| 16960 | | | TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1); |
| 16961 | | | break; |
| 16962 | | | case 70: |
| 16963 | | | offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1); |
| 16964 | | | break; |
| 16965 | | | case 71: |
| 16966 | | | offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1); |
| 16967 | | | break; |
| 16968 | | | case 72: |
| 16969 | | | offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1); |
| 16970 | | | break; |
| 16971 | | | case 73: |
| 16972 | | | offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1); |
| 16973 | | | break; |
| 16974 | | | case 74: |
| 16975 | | | offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1); |
| 16976 | | | break; |
| 16977 | | | case 75: |
| 16978 | | | offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1); |
| 16979 | | | break; |
| 16980 | | | case 76: |
| 16981 | | | offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); |
| 16982 | | | break; |
| 16983 | | | case 77: |
| 16984 | | | offset=dissect_gsm_map_ss_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); |
| 16985 | | | break; |
| 16986 | | | case 78: |
| 16987 | | | case 79: |
| 16988 | | | case 80: |
| 16989 | | | case 81: |
| 16990 | | | offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1); |
| 16991 | | | break; |
| 16992 | | | |
| 16993 | | | case 83: |
| 16994 | | | offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 16995 | | | break; |
| 16996 | | | case 84: |
| 16997 | | | offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1); |
| 16998 | | | break; |
| 16999 | | | case 85: |
| 17000 | | | offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 17001 | | | break; |
| 17002 | | | case 86: |
| 17003 | | | offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1); |
| 17004 | | | break; |
| 17005 | | | case 87: |
| 17006 | | | offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1); |
| 17007 | | | break; |
| 17008 | | | case 88: |
| 17009 | | | offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1); |
| 17010 | | | break; |
| 17011 | | | case 89: |
| 17012 | | | offset=dissect_gsm_map_ms_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1); |
| 17013 | | | break; |
| 17014 | | | case 109: |
| 17015 | | | offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(FALSE, tvb, offset, actx, tree, -1); |
| 17016 | | | break; |
| 17017 | | | case 110: |
| 17018 | | | offset=dissect_gsm_ss_LCS_LocationUpdateArg(FALSE, tvb, offset, actx, tree, -1); |
| 17019 | | | break; |
| 17020 | | | case 111: |
| 17021 | | | offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(FALSE, tvb, offset, actx, tree, -1); |
| 17022 | | | break; |
| 17023 | | | case 112: |
| 17024 | | | offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(FALSE, tvb, offset, actx, tree, -1); |
| 17025 | | | break; |
| 17026 | | | case 113: |
| 17027 | | | offset=dissect_gsm_ss_LCS_AreaEventReportArg(FALSE, tvb, offset, actx, tree, -1); |
| 17028 | | | break; |
| 17029 | | | case 114: |
| 17030 | | | offset=dissect_gsm_ss_LCS_AreaEventRequestArg(FALSE, tvb, offset, actx, tree, -1); |
| 17031 | | | break; |
| 17032 | | | case 115: |
| 17033 | | | offset=dissect_gsm_ss_LCS_MOLRArg(FALSE, tvb, offset, actx, tree, -1); |
| 17034 | | | break; |
| 17035 | | | case 116: |
| 17036 | | | offset=dissect_gsm_ss_LocationNotificationArg(FALSE, tvb, offset, actx, tree, -1); |
| 17037 | | | break; |
| 17038 | | | case 117: |
| 17039 | | | offset=dissect_gsm_ss_CallDeflectionArg(FALSE, tvb, offset, actx, tree, -1); |
| 17040 | | | break; |
| 17041 | | | case 118: |
| 17042 | | | offset=dissect_gsm_ss_UserUserServiceArg(FALSE, tvb, offset, actx, tree, -1); |
| 17043 | | | break; |
| 17044 | | | case 119: |
| 17045 | | | offset=dissect_gsm_ss_AccessRegisterCCEntryArg(FALSE, tvb, offset, actx, tree, -1); |
| 17046 | | | break; |
| 17047 | | | case 120: |
| 17048 | | | application_context_version = 3; |
| 17049 | | | offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1); |
| 17050 | | | break; |
| 17051 | | | case 121: |
| 17052 | | | break; |
| 17053 | | | case 122: |
| 17054 | | | break; |
| 17055 | | | case 123: |
| 17056 | | | break; |
| 17057 | | | case 124: |
| 17058 | | | break; |
| 17059 | | | case 125: |
| 17060 | | | offset=dissect_gsm_ss_ForwardChargeAdviceArg(FALSE, tvb, offset, actx, tree, -1); |
| 17061 | | | break; |
| 17062 | | | case 126: |
| 17063 | | | break; |
| 17064 | | | default: |
| 17065 | | | cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob"); |
| 17066 | | | proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN); |
| 17067 | | | expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode); |
| 17068 | | | } |
| 17069 | | | return offset; |
| 17070 | | | } |
| |