aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-04-27 12:31:01 +0200
committerHarald Welte <laforge@gnumonks.org>2017-04-27 12:31:01 +0200
commitb3546525024e8a183bb9b2e07eba82ead1397ed0 (patch)
tree556cdcb63d8e4510c79a69b369e02b709238686a /src
parentfa3325fb8b2f8bf31593b24e4e50693916feef1e (diff)
osmo_sccp_addr_parse() Fix point code integer precision handling
"(cur[1] << 8) & 0x3f" is always 0 regardless of the values of its operands. Change-Id: Ie47e632f4bca490baf4282dc5d55ee55ca7f1ae8 Fixes: coverity CID#166932
Diffstat (limited to 'src')
-rw-r--r--src/sccp2sua.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sccp2sua.c b/src/sccp2sua.c
index 7268e27..753d9a4 100644
--- a/src/sccp2sua.c
+++ b/src/sccp2sua.c
@@ -134,7 +134,8 @@ int osmo_sccp_addr_parse(struct osmo_sccp_addr *out,
if (sca->point_code_indicator) {
out->presence |= OSMO_SCCP_ADDR_T_PC;
- out->pc = ((cur[1] << 8) & 0x3f) | cur[0];
+ out->pc = (uint16_t) (cur[1] & 0x3f) << 8;
+ out->pc |= cur[0];
cur += 2;
}