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 /src | |
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
Diffstat (limited to 'src')
-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; |