29 lines
808 B
Diff
29 lines
808 B
Diff
|
From 3ad7f81624572ebd5b9e6058c9f67d38207c10e2 Mon Sep 17 00:00:00 2001
|
||
|
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||
|
Date: Wed, 8 May 2024 11:49:31 +0200
|
||
|
Subject: [PATCH] [CVE-2024-34459] Fix buffer overread with `xmllint --htmlout`
|
||
|
|
||
|
Add a missing bounds check.
|
||
|
|
||
|
Fixes #720.
|
||
|
---
|
||
|
xmllint.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/xmllint.c b/xmllint.c
|
||
|
index b2afbe969..35c328578 100644
|
||
|
--- a/xmllint.c
|
||
|
+++ b/xmllint.c
|
||
|
@@ -543,7 +543,7 @@ xmlHTMLPrintFileContext(xmlParserInputPtr input) {
|
||
|
len = strlen(buffer);
|
||
|
snprintf(&buffer[len], sizeof(buffer) - len, "\n");
|
||
|
cur = input->cur;
|
||
|
- while ((*cur == '\n') || (*cur == '\r'))
|
||
|
+ while ((cur > base) && ((*cur == '\n') || (*cur == '\r')))
|
||
|
cur--;
|
||
|
n = 0;
|
||
|
while ((cur != base) && (n++ < 80)) {
|
||
|
--
|
||
|
GitLab
|
||
|
|