From 7fabf607f2319a36a0bd78444247180acb838e69 Mon Sep 17 00:00:00 2001
From: Guy Harris <gharris@sonic.net>
Date: Sun, 7 Sep 2025 12:51:56 -0700
Subject: [PATCH] Fix a copy-and-pasteo in utf_16le_to_utf_8_truncated().

For the four octets of UTF-8 case, it was decrementing the remaining
buffer length by 3, not 4.

Thanks to a team of developers from the Univesity of Waterloo for
reporting this.

(cherry picked from commit aebfca1aea2fc8c177760a26e8f4de27b51d1b3b)

CVE: CVE-2025-11964
Upstream-Status: Backport [https://github.com/the-tcpdump-group/libpcap/commit/7fabf607f2319a36a0bd78444247180acb838e69]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
 fmtutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fmtutils.c b/fmtutils.c
index a5a4fe62..78a0f8b7 100644
--- a/fmtutils.c
+++ b/fmtutils.c
@@ -235,7 +235,7 @@ utf_16le_to_utf_8_truncated(const wchar_t *utf_16, char *utf_8,
 			*utf_8++ = ((uc >> 12) & 0x3F) | 0x80;
 			*utf_8++ = ((uc >> 6) & 0x3F) | 0x80;
 			*utf_8++ = ((uc >> 0) & 0x3F) | 0x80;
-			utf_8_len -= 3;
+			utf_8_len -= 4;
 		}
 	}
 
