diff --git a/mms-lib/src/mms_codec.c b/mms-lib/src/mms_codec.c index 2a9d27c..c36abb6 100644 --- a/mms-lib/src/mms_codec.c +++ b/mms-lib/src/mms_codec.c @@ -648,13 +648,18 @@ static gboolean extract_absolute_relative_date(struct wsp_header_iter *iter, unsigned int i; unsigned int seconds; + /* + * Address-present-token Encoded-string-value | Insert-address-token + * Address-present-token = + * Insert-address-token = + */ if (wsp_header_iter_get_val_type(iter) != WSP_VALUE_TYPE_LONG) return FALSE; p = wsp_header_iter_get_val(iter); l = wsp_header_iter_get_val_len(iter); - if (l < 2 || l > 5) + if (l < 2 || l > 6) return FALSE; if (p[0] != 128 && p[0] != 129) diff --git a/mms-lib/test/test_mms_codec/data/m-notification_4.ind b/mms-lib/test/test_mms_codec/data/m-notification_4.ind new file mode 100644 index 0000000..d408d11 Binary files /dev/null and b/mms-lib/test/test_mms_codec/data/m-notification_4.ind differ diff --git a/mms-lib/test/test_mms_codec/test_mms_codec.c b/mms-lib/test/test_mms_codec/test_mms_codec.c index 254351e..3011f47 100644 --- a/mms-lib/test/test_mms_codec/test_mms_codec.c +++ b/mms-lib/test/test_mms_codec/test_mms_codec.c @@ -58,6 +58,7 @@ int main(int argc, char* argv[]) "m-notification_1.ind", "m-notification_2.ind", "m-notification_3.ind", + "m-notification_4.ind", "m-delivery.ind", "m-read-orig.ind", "m-retrieve_1.conf",