dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12550


Change subject: gsm29118: fix coverity issues
......................................................................

gsm29118: fix coverity issues

The function msgb_sgsap_name_put() assignes the return code of
osmo_apn_from_str() directly to len. Len is an uint8_t and the return
code an int. If osmo_apn_from_str() returns -1. Len would become 0xFF
causing a buffer overrun with msgb_tlv_put. Lets use the proper type to
catch the return code and check it before using it as length.

Change-Id: Ic0bc5114eee47bdcf2300a6e4b0df473d3d1903a
Fixes: CID#190405
Fixes: CID#190401
Related: OS#3615
---
M src/gsm/gsm29118.c
1 file changed, 6 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/50/12550/1

diff --git a/src/gsm/gsm29118.c b/src/gsm/gsm29118.c
index ca210fb..56e7473 100644
--- a/src/gsm/gsm29118.c
+++ b/src/gsm/gsm29118.c
@@ -196,9 +196,14 @@
 {
        uint8_t buf[APN_MAXLEN];
        uint8_t len;
+       int rc;
+
        /* encoding is like DNS names, which is like APN fields */
        memset(buf, 0, sizeof(buf));
-       len = osmo_apn_from_str(buf, sizeof(buf), name);
+       rc = osmo_apn_from_str(buf, sizeof(buf), name);
+       if (rc < 0)
+               return -1;
+       len = (uint8_t)rc;

        /* Note: While the VLR-Name (see 3GPP TS 29.118, chapter 9.4.22) has
         * a flexible length, the MME-Name has a fixed size of 55 octets. (see

--
To view, visit https://gerrit.osmocom.org/12550
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic0bc5114eee47bdcf2300a6e4b0df473d3d1903a
Gerrit-Change-Number: 12550
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pma...@sysmocom.de>

Reply via email to