Pau Espin Pedrol 868d818e6e Fix double free during RAU with unexpected Old RAI
If an MS which had an MMCTX at the SGSN sent RAU update with an
unexpected Old RA field, the RAU was rejected and LLME (LLC layer)
unassigned (freed), because no MMCTX was found matching the wrong old
RA.
However, an MMCTX may actually exist pointing to that LLME, and hence
when the LLME is freed, it stayed unnoticed with a dangling pointer to
the freed LLME in ctx->gb.llme.
Let's try to harder to avoid this kind of bugs which make osmo-sgsn
crash.

Once we properly split the code into separate independent layers (LLC,
MMCTX, etc.) each holding their own structs, this kind of bugs shouldn't
happen anymore.

Related: OS#6441
Change-Id: I5a4328c6e945b85dd815215724feecadba59c435
2024-08-19 18:20:53 +02:00
2024-03-23 17:03:36 +01:00
2022-01-11 18:13:46 +01:00
2023-01-11 12:51:38 +01:00
2017-08-27 17:40:52 +02:00
2017-08-27 17:40:52 +02:00
2024-05-13 08:39:35 +00:00
2024-06-05 18:34:07 +07:00

osmo-sgsn - Osmocom SGSN Implementation

This repository contains a C-language implementation of a Serving GPRS Support Node (SGSN) for 2.5/2.75G (GPRS/EDGE) and 3G (UMTS). It is part of the Osmocom Open Source Mobile Communications project.

OsmoSGSN exposes

  • Gb towards PCUs (e.g. OsmoPCU): Various GbIP flavors + Gb/FR/E1
  • GTP towards a GGSN (e.g. OsmoGGSN)
  • IuPS over IP towards RNCs / HNBGW (e.g. osmo-hnbgw)
  • The Osmocom typical telnet VTY and CTRL interfaces.
  • The Osmocom typical statsd exporter.
  • GSUP (custom MAP-like protocol) towards osmo-hlr

OsmoSGSN implements

  • GPRS mobility management
  • GPRS session management

Homepage

You can find the OsmoSGSN homepage online at https://osmocom.org/projects/osmosgsn/wiki.

GIT Repository

You can clone from the official osmo-sgsn.git repository using

    git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-sgsn

There is a web interface at https://gitea.osmocom.org/cellular-infrastructure/osmo-sgsn

Documentation

User Manuals and VTY reference manuals are [optionally] built in PDF form as part of the build process.

Pre-rendered PDF version of the current "master" can be found at User Manual as well as the VTY Reference Manual

Forum

We welcome any osmo-sgsn related discussions in the Cellular Network Infratructure -> 2G/3G Core Network. section of the osmocom discourse (web based Forum).

Mailing List

Discussions related to osmo-sgsn are happening on the osmocom-net-gprs@lists.osmocom.org mailing list, please see https://lists.osmocom.org/postorius/lists/osmocom-net-gprs.lists.osmocom.org/ for subscription options and the list archive.

Please observe the Osmocom Mailing List Rules when posting.

Issue Tracker

We use the issue tracker of the osmo-sgsn project on osmocom.org for tracking the state of bug reports and feature requests. Feel free to submit any issues you may find, or help us out by resolving existing issues.

Contributing

Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

We use a Gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details

The current patch queue for osmo-sgsn can be seen at https://gerrit.osmocom.org/#/q/project:osmo-sgsn+status:open

History

OsmoSGSN originated from the OpenBSC project, as a separate program within openbsc.git. In 2017, OpenBSC was split in separate repositories, and hence OsmoSGSN was given its own separate git repository.

Description
Osmocom Serving GPRS Support Node for 2G(GPRS) and 3G(UMTS)
Readme 25 MiB
Languages
C 94.9%
Python 1.6%
Makefile 1.4%
M4 0.8%
Shell 0.7%
Other 0.6%