summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-06-01 10:07:18 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-06-01 10:07:18 -0500
commit4638d3ad831f7bf11fcd5a0f951d9c4eae475257 (patch)
tree053b6cb32a3b91cbe773664a16f780f868f95dab /src
parent103961c71b0bc74456fa149d5d6761cd3d97b6d4 (diff)
downloadofono-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.c10
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;