Telus decodes in such a way to introduce unknown headers in the MMS decode.
This patch enables mmsd to handle these headers.
---
src/mmsutil.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/mmsutil.c b/src/mmsutil.c
index 5fcf358..ef72f20 100644
--- a/src/mmsutil.c
+++ b/src/mmsutil.c
@@ -732,10 +732,9 @@ static header_handler handler_for_type(enum mms_header header)
return extract_text;
case MMS_HEADER_INVALID:
case __MMS_HEADER_MAX:
+ default:
return NULL;
}
-
- return NULL;
}
struct header_handler_entry {
@@ -781,8 +780,17 @@ static gboolean mms_parse_headers(struct wsp_header_iter *iter,
handler = handler_for_type(h);
if (handler == NULL) {
- DBG("no handler for type %u", h);
- return FALSE;
+ if(h == MMS_HEADER_INVALID) {
+ DBG("no handler for type %u", h);
+ return FALSE;
+ } else if (h == __MMS_HEADER_MAX) {
+ DBG("no handler for type %u", h);
+ return FALSE;
+ } else {
+ /* Telus has strange headers, so this handles it */
+ DBG("type isn't a part of the standard? Skipping %u", h);
+ continue;
+ }
}
DBG("saw header of type %u", h);
--
2.30.0
Show replies by date