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