aboutsummaryrefslogtreecommitdiff
path: root/projects/dlplibs/ofz3670.patch
blob: f59a5b1a55b876e1b51494f0c268d46632df99f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
From b0537ec9a7047d55d365a64e9ec9559cf1f28792 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Mon, 13 Nov 2017 16:56:23 +0100
Subject: [PATCH] avoid target buffer overflow

---
 icu4c/source/common/ucnv_u8.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/icu4c/source/common/ucnv_u8.cpp b/icu4c/source/common/ucnv_u8.cpp
index 951988ed9..caaf18ae3 100644
--- a/icu4c/source/common/ucnv_u8.cpp
+++ b/icu4c/source/common/ucnv_u8.cpp
@@ -770,6 +770,11 @@ ucnv_UTF8FromUTF8(UConverterFromUnicodeArgs *pFromUArgs,
             oldToULength=0;
             toULength=1;
             toULimit=U8_COUNT_BYTES_NON_ASCII(b);
+            if (toULimit > (const uint8_t *)pFromUArgs->targetLimit - target)
+            {
+                *pErrorCode = U_BUFFER_OVERFLOW_ERROR;
+                break;
+            }
             c=b;
 moreBytes:
             while(toULength<toULimit) {
-- 
2.14.1