Sukchan Lee bca0a7b6e0 [AMF/SEC] pass AMF UE context to downlink NAS transport to prevent fatal crash (#3950)
When SM Context creation fails (e.g. 504 from SMF) the AMF continued
to build and send a NAS downlink message by dynamically looking up
the AMF UE context from ran_ue->amf_ue_id inside ngap_build_downlink_nas_transport().
If ran_ue_deassociate() had already removed that mapping, the lookup
would return NULL, triggering a fatal assertion and crashing the AMF.

This patch changes:
  1. nas_5gs_send_to_downlink_nas_transport() and
     ngap_build_downlink_nas_transport() signatures to accept an
     explicit amf_ue_t * parameter alongside ran_ue_t *.
  2. All calls to nas_5gs_send_to_downlink_nas_transport() to pass
     the correct amf_ue pointer (from sess->amf_ue_id).
  3. Removal of the dynamic lookup and fatal assertion in
     ngap_build_downlink_nas_transport(), replacing it with
     ogs_assert(amf_ue) on the passed-in context.

By carrying the valid AMF UE context through the call chain, we
ensure that downlink NAS transport always has a correct pointer,
even when the ran_ue-to-amf_ue mapping has been cleared. This
prevents invalid internal state transitions and eliminates the
ngap_build_downlink_nas_transport() crash when handling SMF failures.
2025-07-04 15:30:29 +09:00
2025-02-04 21:09:20 +09:00
2025-03-30 22:05:34 +09:00
2023-12-04 21:14:37 +09:00
2023-11-27 22:21:35 +09:00
2023-10-10 08:03:25 +09:00
2017-12-18 10:35:54 +09:00
2025-03-30 22:05:34 +09:00
2024-08-24 19:18:55 +09:00

Open5GS logo

Getting Started

Please follow the documentation at open5gs.org!

Sponsors

If you find Open5GS useful for work, please consider supporting this Open Source project by Becoming a sponsor. To manage the funding transactions transparently, you can donate through OpenCollective.

Special Sponsor

special sponsor mobi

sponsors

Community

  • Problem with Open5GS can be filed as issues in this repository.
  • Other topics related to this project are happening on the discussions.
  • Voice and text chat are available in Open5GS's Discord workspace. Use this link to get started.

Contributing

If you're contributing through a pull request to Open5GS project on GitHub, please read the Contributor License Agreement in advance.

License

Support

Technical support and customized services for Open5GS are provided by NewPlane at support@newplane.io.

Description
Open5GS is a C-language Open Source implementation for 5G Core and EPC, i.e. the core network of LTE/NR network (Release-17)
Readme AGPL-3.0 270 MiB
Languages
C 97.6%
Mustache 0.9%
JavaScript 0.5%
Meson 0.5%
Python 0.3%
Other 0.2%