From c5a42cfabe3abe0d99299daffbe04c33a217fb25 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 2 Dec 2010 07:53:54 -0600 Subject: 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. --- src/smsutil.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') 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)) -- cgit v1.2.3