Commit d17527e1 authored by berge's avatar berge
Browse files

Fixed issue in LS receive template (potential access to subfield of a '?' parameter)

parent 548c920c
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -674,7 +674,7 @@ module LibItsGeoNetworking_Functions {
        altstep a_neighbourDefault() runs on ItsNt {
      
            [] a_receiveLsRequestAndReply(
                ?, f_getPosition(vc_componentName).gnAddr, 
                ?, f_getPosition(vc_componentName).gnAddr.mid, 
                f_getPosition(vc_componentName), 
                f_getPosition(vc_componentName)
               ) { 
@@ -885,7 +885,7 @@ module LibItsGeoNetworking_Functions {
             */
            altstep a_receiveLsRequest(
                in template (present) UInt16 p_seqNumber,
                in template (present) GN_Address p_gnAddress,
                in template (present) GN_Address.mid p_mid,
                out LongPosVector p_reqSrcPosVector
            ) runs on ItsNt {
                var GeoNetworkingInd v_msg;
@@ -895,7 +895,7 @@ module LibItsGeoNetworking_Functions {
                        mw_geoNwPdu(
                            mw_lsRequestHeader(
                                p_seqNumber,
                                p_gnAddress
								p_mid
                            )
                        )
                    )
@@ -922,13 +922,13 @@ module LibItsGeoNetworking_Functions {
             */
            altstep a_receiveLsRequestAndReply(
                in template (present) UInt16 p_reqSeqNumber,
                in template (value) GN_Address p_gnAddress,
                in template (value) GN_Address.mid p_mid,
                in template (value) LongPosVector p_repSrcPosVector,
                in template (value) LongPosVector p_repSenderPosVector
            ) runs on ItsNt {
                var LongPosVector v_repDstPosVector;
                
                [] a_receiveLsRequest(p_reqSeqNumber, p_gnAddress, v_repDstPosVector) {
                [] a_receiveLsRequest(p_reqSeqNumber, p_mid, v_repDstPosVector) {
                    f_sendGeoNetMessage(m_geoNwReq(m_geoNwPdu(
                        m_lsReplyHeader(
                        p_repSrcPosVector,
@@ -974,10 +974,12 @@ module LibItsGeoNetworking_Functions {
        function f_initialState() {
            
            var ItsNt v_initComponent := ItsNt.create;
			map(v_initComponent:utPort, system:utPort);
			
            v_initComponent.start(f_utInitializeIut(m_gnInitialize));
            v_initComponent.done;
            
			unmap(v_initComponent:utPort, system:utPort);
        }
        
        
@@ -990,14 +992,14 @@ module LibItsGeoNetworking_Functions {
         */
        function f_handleLocationService(
          in template (present) UInt16 p_reqSeqNumber,
          in template (value) GN_Address p_gnAddress,
          in template (value) GN_Address.mid p_mid,
          in template (value) LongPosVector p_repSrcPosVector,
          in template (value) LongPosVector p_repSenderPosVector
        ) runs on ItsNt {
            
            tc_ac.start;
            alt {
                [] a_receiveLsRequestAndReply(p_reqSeqNumber, p_gnAddress, p_repSrcPosVector, p_repSenderPosVector) {
                [] a_receiveLsRequestAndReply(p_reqSeqNumber, p_mid, p_repSrcPosVector, p_repSenderPosVector) {
                    tc_ac.stop;
                }
            }
+6 −6
Original line number Diff line number Diff line
@@ -1249,7 +1249,7 @@ module LibItsGeoNetworking_Templates {
             */
            template Header mw_lsRequestHeader(
                in template (present) UInt16 p_seqNumber,
                in template (present) GN_Address p_gnAddress      
                in template (present) GN_Address.mid p_mid      
            ) := {
                lsRequestHeader := {
                    commonHeader := mw_commonHeader(
@@ -1261,7 +1261,7 @@ module LibItsGeoNetworking_Templates {
                    lifetime := ?,
                    reserved := ?,
                    srcPosVector := ?,
                    gnAddress := mw_gnAddressMid(p_gnAddress)
                    gnAddress := mw_gnAddressMid(p_mid)
                }
            }
            
@@ -1274,7 +1274,7 @@ module LibItsGeoNetworking_Templates {
             */
            template Header mw_lsRequestHeader_withHopLimit(
                in template (present) UInt16 p_seqNumber,
                in template (present) GN_Address p_gnAddress,
                in template (present) GN_Address.mid p_mid,
                in template (present) UInt8 p_hopLimit
            ) modifies mw_lsRequestHeader := {
                lsRequestHeader := {
@@ -1400,7 +1400,7 @@ module LibItsGeoNetworking_Templates {
            ) := {
                beaconHeader := {
                    commonHeader := m_commonHeader(
                        e_btp,
                        e_any,
                        m_beaconHeaderType,
                        m_trafficClass,
                        c_defaultHopLimit,
@@ -1643,12 +1643,12 @@ module LibItsGeoNetworking_Templates {
         * @desc    Receive template for GN_Address. Only M_ID field is discriminent 
         * @param   p_gnAddress Expected GN Address
         */
        template GN_Address mw_gnAddressMid(in template (present) GN_Address p_gnAddress) := {
        template GN_Address mw_gnAddressMid(in template (present) GN_Address.mid p_mid) := {
            typeOfAddress := ?,
            stationType := ?,
            stationSubType := ?,
            stationCountryCode := ?,
            mid := p_gnAddress.mid
            mid := p_mid
        }

        group geoDummyTemplates {