File 0963-megaco-V2-V3-text-parser-IPv6-address-failure.patch of Package erlang

From 7e419c9a9e37ffc64c59ae5bdfef98463b7de8ce Mon Sep 17 00:00:00 2001
From: Lars Thorsen <lars@erlang.org>
Date: Wed, 26 Aug 2020 14:41:24 +0200
Subject: [PATCH 1/2] [megaco] V2/V3 text parser IPv6 address failure

The v2/v3 decoders could handle all kinds of IPv6 addresses.
The reason for this was that some of the chars (a and e)
in the short form was interpreted as 'AddToken' and 'EventsToken'
respectively, which the v2/v3 parsers could not handle.

ABNF for the mId (only the IPv6 version):

mId             = (( domainAddress / domainName ) [":" portNumber]) /
                      mtpAddress / deviceName
domainAddress   = "[" (IPv4address / IPv6address) "]"
IPv6address     = hexpart [ ":" IPv4address ]
hexpart         = hexseq "::" [ hexseq ] / "::" [ hexseq ] / hexseq
hexseq          = hex4 *( ":" hex4)
hex4            = 1*4HEXDIG
HEXDIG          = ( DIGIT / "A" / "B" / "C" / "D" / "E" / "F" )
DIGIT           = %x30-39         ; 0-9

Example:  [2409:8050:5005:1243:1011::a]

The final 'a' (or 'e') caused it to fail.

OTP-16818
---
 lib/megaco/src/text/megaco_text_parser_v2.yrl | 2 +-
 lib/megaco/src/text/megaco_text_parser_v3.yrl | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/megaco/src/text/megaco_text_parser_v2.yrl b/lib/megaco/src/text/megaco_text_parser_v2.yrl
index f8fe762ee1..6e7a5a8f96 100644
--- a/lib/megaco/src/text/megaco_text_parser_v2.yrl
+++ b/lib/megaco/src/text/megaco_text_parser_v2.yrl
@@ -1418,7 +1418,7 @@ safeToken2           -> 'EmergencyToken'        : '$1' .
 safeToken2           -> 'EmergencyOffToken'     : '$1' .
 safeToken2           -> 'ErrorToken'            : '$1' .
 %% v2-safeToken2           -> 'EventBufferToken'      : '$1' .
-%% v2-safeToken2           -> 'EventsToken'           : '$1' .
+safeToken2           -> 'EventsToken'           : '$1' .
 safeToken2           -> 'FailoverToken'         : '$1' .
 safeToken2           -> 'ForcedToken'           : '$1' .
 safeToken2           -> 'GracefulToken'         : '$1' .
diff --git a/lib/megaco/src/text/megaco_text_parser_v3.yrl b/lib/megaco/src/text/megaco_text_parser_v3.yrl
index 54739af82e..7e382c33da 100644
--- a/lib/megaco/src/text/megaco_text_parser_v3.yrl
+++ b/lib/megaco/src/text/megaco_text_parser_v3.yrl
@@ -1553,7 +1553,7 @@ value                -> safeToken     : ensure_value('$1').
 safeToken            -> safeToken2              : make_safe_token('$1') .
 
 safeToken2           -> 'SafeChars'             : '$1' .
-%% BMK BMK safeToken2           -> 'AddToken'              : '$1' .
+safeToken2           -> 'AddToken'              : '$1' .
 safeToken2           -> 'AuditToken'            : '$1' .
 safeToken2           -> 'AuditCapToken'         : '$1' .
 safeToken2           -> 'AuditValueToken'       : '$1' .
@@ -1579,7 +1579,7 @@ safeToken2           -> 'EmbedToken'            : '$1' .
 %% BMK BMK safeToken2           -> 'EmergencyOffToken'     : '$1' .
 safeToken2           -> 'ErrorToken'            : '$1' .
 %% v2-safeToken2           -> 'EventBufferToken'      : '$1' .
-%% v2-safeToken2           -> 'EventsToken'           : '$1' .
+safeToken2           -> 'EventsToken'           : '$1' .
 %% v3-safeToken2           -> 'ExternalToken'         : '$1' . % v3
 safeToken2           -> 'FailoverToken'         : '$1' .
 safeToken2           -> 'ForcedToken'           : '$1' .
-- 
2.26.2

openSUSE Build Service is sponsored by