diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-06-01 10:07:18 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-06-01 10:07:18 -0500 |
commit | 4638d3ad831f7bf11fcd5a0f951d9c4eae475257 (patch) | |
tree | 053b6cb32a3b91cbe773664a16f780f868f95dab | |
parent | 103961c71b0bc74456fa149d5d6761cd3d97b6d4 (diff) | |
download | ofono-4638d3ad831f7bf11fcd5a0f951d9c4eae475257.tar.bz2 |
smsutil: Don't overflow signed ints
We were overflowing the datatype which was causing the 31st segments to
be prepended at position 0. This resulted in (very) long messages being
improperly concatenated
-rw-r--r-- | src/smsutil.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/smsutil.c b/src/smsutil.c index 62d8ab28..30c12506 100644 --- a/src/smsutil.c +++ b/src/smsutil.c @@ -2483,16 +2483,16 @@ static GSList *sms_assembly_add_fragment_backup(struct sms_assembly *assembly, guint16 ref, guint8 max, guint8 seq, gboolean backup) { - int offset = seq / 32; - int bit = 1 << (seq % 32); + unsigned int offset = seq / 32; + unsigned int bit = 1 << (seq % 32); GSList *l; GSList *prev; struct sms *newsms; struct sms_assembly_node *node; GSList *completed; - int position; - int i; - int j; + unsigned int position; + unsigned int i; + unsigned int j; prev = NULL; |