From b3546525024e8a183bb9b2e07eba82ead1397ed0 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 27 Apr 2017 12:31:01 +0200 Subject: 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 --- src/sccp2sua.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; } -- cgit v1.2.3