diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-04-27 12:31:01 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-04-27 12:31:01 +0200 |
commit | b3546525024e8a183bb9b2e07eba82ead1397ed0 (patch) | |
tree | 556cdcb63d8e4510c79a69b369e02b709238686a /src | |
parent | fa3325fb8b2f8bf31593b24e4e50693916feef1e (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.c | 3 |
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; } |