summaryrefslogtreecommitdiffstats
path: root/src/smsutil.c
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@profusion.mobi>2011-01-28 00:48:59 -0200
committerDenis Kenzior <denkenz@gmail.com>2011-01-28 20:32:09 -0600
commitf5b1c954900d4ff2a8849a41a079d3f1221157ae (patch)
tree17d9e6f8906e2304d601a6ef4014ceb42cbc14a2 /src/smsutil.c
parentff2a5c65069bd92880a47d3c16b12383866e3c0d (diff)
downloadofono-f5b1c954900d4ff2a8849a41a079d3f1221157ae.tar.bz2
smsutil: do not allow larger file names
If file name had anything in the name after addr-msgid, it would be parsed as well. This is not what we want, since there could be temporary files lying around.
Diffstat (limited to 'src/smsutil.c')
-rw-r--r--src/smsutil.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/smsutil.c b/src/smsutil.c
index 1c3b7980..17623913 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -2726,6 +2726,7 @@ static void sr_assembly_load_backup(GHashTable *assembly_table,
unsigned int *id_table_key;
char msgid_str[SMS_MSGID_LEN * 2 + 1];
unsigned char msgid[SMS_MSGID_LEN];
+ char endc;
if (addr_dir->d_type != DT_REG)
return;
@@ -2737,8 +2738,8 @@ static void sr_assembly_load_backup(GHashTable *assembly_table,
* Max of SMS address size is 12 bytes, hex encoded
* Max of SMS SHA1 hash is 20 bytes, hex encoded
*/
- if (sscanf(addr_dir->d_name, SMS_ADDR_FMT "-" SMS_MSGID_FMT,
- straddr, msgid_str) < 2)
+ if (sscanf(addr_dir->d_name, SMS_ADDR_FMT "-" SMS_MSGID_FMT "%c",
+ straddr, msgid_str, &endc) != 2)
return;
if (sms_assembly_extract_address(straddr, &addr) == FALSE)