osmo-msc/src
Vadim Yanitskiy 4eca09fdb1 libmsc/gsm_04_11.c: properly handle TP-User-Data-Length
As per 3GPP TS 03.40, section 9.2.3.16 "TP-User-Data-Length (TP-UDL)",
if the TP-User-Data is coded using the GSM 7-bit default alphabet,
the TP-User-Data-Length field indicates the *number of septets*
within the TP-User-Data field to follow. Otherwise, i.e. in case
of 8-bit or UCS-2 encoded data, the *number of octets* is indicated.

Since we store the original TP-UDL value (as received), we might
need to convert septets to octets before passing it to memcpy().
Otherwise this would lead to a buffer overrun.

Also, as we receive TPDU from untrusted source (i.e. subscriber),
the TP-UDL value needs to be checked against the corresponding
maximum (160 septets or 140 octets) and truncated if needed.

Please note that buffer overrun is still possible, e.g. when an
indicated TP-UDL value is grather than the remaining TPDU length.
Preventing this would require adding an additional check.

Change-Id: I4b08db7665e854a045129e7695e2bdf296df1688
Depends-on: (core) I54f88d2908ac47228813fb8c049f4264e5145241
2019-05-10 03:22:32 +07:00
..
libmsc libmsc/gsm_04_11.c: properly handle TP-User-Data-Length 2019-05-10 03:22:32 +07:00
libvlr large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
osmo-msc rename bscconfig.h to config.h, cleanup 2019-05-08 17:02:32 +02:00
utils configure.ac: drop useless SQLite3 dependency 2019-04-25 21:23:35 +02:00
Makefile.am Remove local libgsupclient; Use libosmo-gsup-client from osmo-hlr 2018-08-05 11:20:21 +02:00