diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-12-02 07:53:54 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-12-02 07:53:54 -0600 |
commit | c5a42cfabe3abe0d99299daffbe04c33a217fb25 (patch) | |
tree | 2a09cc44599e49db131bc4fe8516e27d22c07d86 | |
parent | ac72349017fbfdecbba000c0259cc6b99f0873ed (diff) | |
download | ofono-c5a42cfabe3abe0d99299daffbe04c33a217fb25.tar.bz2 |
smsutil: Fix uninitialized optional elements
sms_decode was never memsetting the returned structure, so if any
optional elements were present in the SMS (e.g. status report) then the
structure was not completely initialized.
-rw-r--r-- | src/smsutil.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/smsutil.c b/src/smsutil.c index b06e9bf9..631d9496 100644 --- a/src/smsutil.c +++ b/src/smsutil.c @@ -1024,8 +1024,6 @@ static gboolean decode_status_report(const unsigned char *pdu, int len, if (out->status_report.pi & 0x02) { if (!next_octet(pdu, len, &offset, &out->status_report.dcs)) return FALSE; - } else { - out->status_report.dcs = 0; } if (out->status_report.pi & 0x04) { @@ -1509,6 +1507,8 @@ gboolean sms_decode(const unsigned char *pdu, int len, gboolean outgoing, if (len == 0) return FALSE; + memset(out, 0, sizeof(*out)); + if (tpdu_len < len) { if (!sms_decode_address_field(pdu, len, &offset, TRUE, &out->sc_addr)) |