From 2bc72fa3db0973be4484c7512bcd3035f2ff47c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= Date: Sat, 17 Dec 2022 17:39:36 +0000 Subject: [PATCH] IPP: Fix invalid UTF-8 encoding Fixes #18739. --- epan/dissectors/packet-ipp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/epan/dissectors/packet-ipp.c b/epan/dissectors/packet-ipp.c index 76416e6100..36a75290c3 100644 --- a/epan/dissectors/packet-ipp.c +++ b/epan/dissectors/packet-ipp.c @@ -1054,6 +1054,10 @@ add_octetstring_tree(proto_tree *tree, tvbuff_t *tvb, int offset, int name_lengt guint8 seconds = tvb_get_guint8(tvb, valoffset + 6); guint8 decisecs = tvb_get_guint8(tvb, valoffset + 7); guint8 utcsign = tvb_get_guint8(tvb, valoffset + 8); + if (utcsign != '+' && utcsign != '-') { + // XXX Add expert info + utcsign = '?'; + } guint8 utchours = tvb_get_guint8(tvb, valoffset + 9); guint8 utcminutes = tvb_get_guint8(tvb, valoffset + 10); @@ -1286,6 +1290,10 @@ add_octetstring_value(const gchar *tag_desc, proto_tree *tree, tvbuff_t *tvb, guint8 seconds = tvb_get_guint8(tvb, valoffset + 6); guint8 decisecs = tvb_get_guint8(tvb, valoffset + 7); guint8 utcsign = tvb_get_guint8(tvb, valoffset + 8); + if (utcsign != '+' && utcsign != '-') { + // XXX Add expert info + utcsign = '?'; + } guint8 utchours = tvb_get_guint8(tvb, valoffset + 9); guint8 utcminutes = tvb_get_guint8(tvb, valoffset + 10);