Make sure record length is not zero
authorDenis Kenzior <denkenz@gmail.com>
Tue, 14 Jul 2009 18:09:00 +0000 (13:09 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Tue, 14 Jul 2009 20:45:06 +0000 (15:45 -0500)
Record length can be reported as 0 by the driver if it is for a
a binary (non-record based) file.  Set it to the file length in
this case

src/sim.c

index 0daf586..ab48b78 100644 (file)
--- a/src/sim.c
+++ b/src/sim.c
@@ -386,7 +386,12 @@ static void sim_op_info_cb(const struct ofono_error *error, int length,
 
        op->structure = structure;
        op->length = length;
-       op->record_length = record_length;
+
+       if (structure == OFONO_SIM_FILE_STRUCTURE_TRANSPARENT)
+               op->record_length = length;
+       else
+               op->record_length = record_length;
+
        op->current = 1;
 
        g_timeout_add(0, sim_op_retrieve_next, modem);