diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-18 17:38:14 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-18 17:38:14 +0100 |
commit | ecfd1d97c67308822a25f82c23282d694b2cc6bb (patch) | |
tree | 86735598f3302b1e41e8f9af055106fde96ec5ad | |
parent | 518780c20361c45fc0b81ab005fcaf74b824fb53 (diff) |
m2ua: Fix the padding calculation
This was found in interop testing. We have to add number of
bytes to fill up four that are not provided by the payload
but nothing if the rest is zero.
-rw-r--r-- | src/m2ua_msg.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/m2ua_msg.c b/src/m2ua_msg.c index 3ab78ff..693137d 100644 --- a/src/m2ua_msg.c +++ b/src/m2ua_msg.c @@ -123,7 +123,7 @@ struct m2ua_msg *m2ua_from_msg(uint16_t len, uint8_t *data) pos += par_len; /* move over the padding */ - padding = par_len % 4; + padding = (4 - (par_len % 4)) & 0x3; pos += padding; } @@ -165,7 +165,7 @@ struct msgb *m2ua_to_msg(struct m2ua_msg *m2ua) memcpy(dat, part->dat, part->len); /* padding */ - rest = part->len % 4; + rest = (4 - (part->len % 4)) & 0x3; if (rest > 0) { dat = msgb_put(msg, rest); memset(dat, 0, rest); |