Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/3307

to look at the new patch set (#2).

sgsn: Convert cch_pdp to host order for libgtp

libgtp is calling gtpie_tv2 which will convert this uint16_t from host
to network order. So far libosmogsm and the sgsn treated the charging
characteristics as opaque data. So when moving from byte array to the
uint16_t do the swapping.

Change-Id: I977aec2e2f8d57802e45f591754e5733562d5c2a
---
M openbsc/src/gprs/sgsn_libgtp.c
1 file changed, 2 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/07/3307/2

diff --git a/openbsc/src/gprs/sgsn_libgtp.c b/openbsc/src/gprs/sgsn_libgtp.c
index 90ac48a..387b95f 100644
--- a/openbsc/src/gprs/sgsn_libgtp.c
+++ b/openbsc/src/gprs/sgsn_libgtp.c
@@ -235,11 +235,8 @@
        }
 
        /* charging characteristics if present */
-       if (TLVP_LEN(tp, OSMO_IE_GSM_CHARG_CHAR) > 0) {
-               OSMO_ASSERT(TLVP_LEN(tp, OSMO_IE_GSM_CHARG_CHAR) <= 
sizeof(pdp->cch_pdp));
-               memcpy(&pdp->cch_pdp, TLVP_VAL(tp, OSMO_IE_GSM_CHARG_CHAR),
-                       TLVP_LEN(tp, OSMO_IE_GSM_CHARG_CHAR));
-       }
+       if (TLVP_LEN(tp, OSMO_IE_GSM_CHARG_CHAR) >= sizeof(pdp->cch_pdp))
+               pdp->cch_pdp = tlvp_val16be(tp, OSMO_IE_GSM_CHARG_CHAR);
 
        /* SGSN address for control plane */
        pdp->gsnlc.l = sizeof(sgsn->cfg.gtp_listenaddr.sin_addr);

-- 
To view, visit https://gerrit.osmocom.org/3307
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I977aec2e2f8d57802e45f591754e5733562d5c2a
Gerrit-PatchSet: 2
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: Holger Freyther <[email protected]>
Gerrit-Reviewer: Harald Welte <[email protected]>
Gerrit-Reviewer: Jenkins Builder

Reply via email to