@crossbind/port-expat-linux 2.0.0-beta.62 → 2.0.0-beta.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/prebuilt/CMakeLists.txt +2 -1
- package/dist/prebuilt/linux-arm64-mt-release/crossbind-source.fingerprint +1 -1
- package/dist/prebuilt/linux-arm64-mt-release/include/expat.h +72 -27
- package/dist/prebuilt/linux-arm64-mt-release/include/expat_config.h +2 -6
- package/dist/prebuilt/linux-arm64-mt-release/include/expat_external.h +3 -0
- package/dist/prebuilt/linux-arm64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat-config-version.cmake +3 -3
- package/dist/prebuilt/linux-arm64-mt-release/lib/libexpat.a +0 -0
- package/dist/prebuilt/linux-arm64-mt-release/lib/pkgconfig/expat.pc +2 -2
- package/dist/prebuilt/linux-arm64-mt-release/lib.sources +1 -0
- package/dist/prebuilt/linux-arm64-mt-release/share/doc/expat/changelog +102 -26
- package/dist/prebuilt/linux-x64-mt-release/crossbind-source.fingerprint +1 -1
- package/dist/prebuilt/linux-x64-mt-release/include/expat.h +72 -27
- package/dist/prebuilt/linux-x64-mt-release/include/expat_config.h +2 -6
- package/dist/prebuilt/linux-x64-mt-release/include/expat_external.h +3 -0
- package/dist/prebuilt/linux-x64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat-config-version.cmake +3 -3
- package/dist/prebuilt/linux-x64-mt-release/lib/libexpat.a +0 -0
- package/dist/prebuilt/linux-x64-mt-release/lib/pkgconfig/expat.pc +2 -2
- package/dist/prebuilt/linux-x64-mt-release/lib.sources +1 -0
- package/dist/prebuilt/linux-x64-mt-release/share/doc/expat/changelog +102 -26
- package/package.json +5 -5
- /package/dist/prebuilt/linux-arm64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat-config.cmake +0 -0
- /package/dist/prebuilt/linux-arm64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat-release.cmake +0 -0
- /package/dist/prebuilt/linux-arm64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat.cmake +0 -0
- /package/dist/prebuilt/linux-x64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat-config.cmake +0 -0
- /package/dist/prebuilt/linux-x64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat-release.cmake +0 -0
- /package/dist/prebuilt/linux-x64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat.cmake +0 -0
|
@@ -51,7 +51,8 @@ if(NOT PACKAGE_HOST_INDEX EQUAL -1)
|
|
|
51
51
|
target_link_libraries("${PROJECT_NAME}" INTERFACE "${PROJECT_LIBS_DIR}")
|
|
52
52
|
endif()
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
# On iOS each library's xcframework carries the headers, so only a header-only package needs them here.
|
|
55
|
+
if(NOT (APPLE AND CMAKE_SYSTEM_NAME STREQUAL "iOS") OR PROJECT_LIBS STREQUAL "")
|
|
55
56
|
target_include_directories("${PROJECT_NAME}" INTERFACE "${PROJECT_SOURCE_DIR}/${PROJECT_TARGET_HOST}/include")
|
|
56
57
|
endif()
|
|
57
58
|
endif()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f2a611220b7618bd33dd84ae3a807e855cab88af3da33b8713bde6716fb79743
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
#ifndef Expat_INCLUDED
|
|
49
49
|
# define Expat_INCLUDED 1
|
|
50
50
|
|
|
51
|
-
# include <stdint.h> // for uint8_t
|
|
51
|
+
# include <stdint.h> // for int64_t, uint8_t, uint64_t
|
|
52
52
|
# include <stdlib.h>
|
|
53
53
|
# include "expat_external.h"
|
|
54
54
|
|
|
@@ -140,6 +140,26 @@ enum XML_Error {
|
|
|
140
140
|
XML_ERROR_NOT_STARTED,
|
|
141
141
|
};
|
|
142
142
|
|
|
143
|
+
/* Added in 2.9.0. */
|
|
144
|
+
enum XML_Prop_Error {
|
|
145
|
+
XML_PROP_ERROR_NONE = 0, // i.e. success
|
|
146
|
+
|
|
147
|
+
XML_PROP_ERROR_INVALID_KEY = 1, // i.e. the property is not known at all
|
|
148
|
+
XML_PROP_ERROR_INVALID_TYPE = 2, // i.e. the property is known but expects a
|
|
149
|
+
// different type (so a different
|
|
150
|
+
// getter/setter would need to be called)
|
|
151
|
+
XML_PROP_ERROR_INVALID_VALUE = 3, // i.e. the value is invalid (with a setter
|
|
152
|
+
// function) or a NULL-pointer (with a
|
|
153
|
+
// getter function)
|
|
154
|
+
|
|
155
|
+
XML_PROP_ERROR_PARSER_NULL = 4, // i.e. the parser argument is NULL
|
|
156
|
+
XML_PROP_ERROR_PARSER_NOT_ROOT = 5, // i.e. the parser is not a root parser
|
|
157
|
+
// but a subparser (and a root parser is
|
|
158
|
+
// needed)
|
|
159
|
+
|
|
160
|
+
/* potentially more error codes upcoming here */
|
|
161
|
+
};
|
|
162
|
+
|
|
143
163
|
enum XML_Content_Type {
|
|
144
164
|
XML_CTYPE_EMPTY = 1,
|
|
145
165
|
XML_CTYPE_ANY,
|
|
@@ -757,29 +777,6 @@ XML_GetSpecifiedAttributeCount(XML_Parser parser);
|
|
|
757
777
|
XMLPARSEAPI(int)
|
|
758
778
|
XML_GetIdAttributeIndex(XML_Parser parser);
|
|
759
779
|
|
|
760
|
-
# ifdef XML_ATTR_INFO
|
|
761
|
-
/* Source file byte offsets for the start and end of attribute names and values.
|
|
762
|
-
The value indices are exclusive of surrounding quotes; thus in a UTF-8 source
|
|
763
|
-
file an attribute value of "blah" will yield:
|
|
764
|
-
info->valueEnd - info->valueStart = 4 bytes.
|
|
765
|
-
*/
|
|
766
|
-
typedef struct {
|
|
767
|
-
XML_Index nameStart; /* Offset to beginning of the attribute name. */
|
|
768
|
-
XML_Index nameEnd; /* Offset after the attribute name's last byte. */
|
|
769
|
-
XML_Index valueStart; /* Offset to beginning of the attribute value. */
|
|
770
|
-
XML_Index valueEnd; /* Offset after the attribute value's last byte. */
|
|
771
|
-
} XML_AttrInfo;
|
|
772
|
-
|
|
773
|
-
/* Returns an array of XML_AttrInfo structures for the attribute/value pairs
|
|
774
|
-
passed in last call to the XML_StartElementHandler that were specified
|
|
775
|
-
in the start-tag rather than defaulted. Each attribute/value pair counts
|
|
776
|
-
as 1; thus the number of entries in the array is
|
|
777
|
-
XML_GetSpecifiedAttributeCount(parser) / 2.
|
|
778
|
-
*/
|
|
779
|
-
XMLPARSEAPI(const XML_AttrInfo *)
|
|
780
|
-
XML_GetAttributeInfo(XML_Parser parser);
|
|
781
|
-
# endif
|
|
782
|
-
|
|
783
780
|
/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is
|
|
784
781
|
detected. The last call to XML_Parse must have isFinal true; len
|
|
785
782
|
may be zero for this call (or any other).
|
|
@@ -964,15 +961,24 @@ XML_GetErrorCode(XML_Parser parser);
|
|
|
964
961
|
return 0 to indicate an error.
|
|
965
962
|
Note: XML_GetCurrentByteIndex returns -1 to indicate an error.
|
|
966
963
|
*/
|
|
964
|
+
XML_ATTR_DEPRECATED("please use XML_GetCurrentLineNumber64 instead")
|
|
967
965
|
XMLPARSEAPI(XML_Size) XML_GetCurrentLineNumber(XML_Parser parser);
|
|
966
|
+
XMLPARSEAPI(uint64_t) XML_GetCurrentLineNumber64(XML_Parser parser);
|
|
967
|
+
XML_ATTR_DEPRECATED("please use XML_GetCurrentColumnNumber64 instead")
|
|
968
968
|
XMLPARSEAPI(XML_Size) XML_GetCurrentColumnNumber(XML_Parser parser);
|
|
969
|
+
XMLPARSEAPI(uint64_t) XML_GetCurrentColumnNumber64(XML_Parser parser);
|
|
970
|
+
XML_ATTR_DEPRECATED("please use XML_GetCurrentByteIndex64 instead")
|
|
969
971
|
XMLPARSEAPI(XML_Index) XML_GetCurrentByteIndex(XML_Parser parser);
|
|
972
|
+
XMLPARSEAPI(int64_t) XML_GetCurrentByteIndex64(XML_Parser parser);
|
|
970
973
|
|
|
971
974
|
/* Return the number of bytes in the current event.
|
|
972
975
|
Returns 0 if the event is in an internal entity.
|
|
973
976
|
*/
|
|
977
|
+
XML_ATTR_DEPRECATED("please use XML_GetCurrentByteCount64 instead")
|
|
974
978
|
XMLPARSEAPI(int)
|
|
975
979
|
XML_GetCurrentByteCount(XML_Parser parser);
|
|
980
|
+
XMLPARSEAPI(uint64_t)
|
|
981
|
+
XML_GetCurrentByteCount64(XML_Parser parser);
|
|
976
982
|
|
|
977
983
|
/* If XML_CONTEXT_BYTES is >=1, returns the input buffer, sets
|
|
978
984
|
the integer pointed to by offset to the offset within this buffer
|
|
@@ -984,8 +990,11 @@ XML_GetCurrentByteCount(XML_Parser parser);
|
|
|
984
990
|
NOTE: The character pointer returned should not be used outside
|
|
985
991
|
the handler that makes the call.
|
|
986
992
|
*/
|
|
993
|
+
XML_ATTR_DEPRECATED("please use XML_GetInputContext64 instead")
|
|
987
994
|
XMLPARSEAPI(const char *)
|
|
988
995
|
XML_GetInputContext(XML_Parser parser, int *offset, int *size);
|
|
996
|
+
XMLPARSEAPI(const char *)
|
|
997
|
+
XML_GetInputContext64(XML_Parser parser, int64_t *offset, uint64_t *size);
|
|
989
998
|
|
|
990
999
|
/* For backwards compatibility with previous versions. */
|
|
991
1000
|
# define XML_GetErrorLineNumber XML_GetCurrentLineNumber
|
|
@@ -1040,6 +1049,7 @@ enum XML_FeatureEnum {
|
|
|
1040
1049
|
XML_FEATURE_UNICODE_WCHAR_T,
|
|
1041
1050
|
XML_FEATURE_DTD,
|
|
1042
1051
|
XML_FEATURE_CONTEXT_BYTES,
|
|
1052
|
+
/* Added in Expat 1.95.5, removed in Expat 2.9.0. */
|
|
1043
1053
|
XML_FEATURE_MIN_SIZE,
|
|
1044
1054
|
XML_FEATURE_SIZEOF_XML_CHAR,
|
|
1045
1055
|
XML_FEATURE_SIZEOF_XML_LCHAR,
|
|
@@ -1047,7 +1057,7 @@ enum XML_FeatureEnum {
|
|
|
1047
1057
|
XML_FEATURE_NS,
|
|
1048
1058
|
/* Added in Expat 2.0.1. */
|
|
1049
1059
|
XML_FEATURE_LARGE_SIZE,
|
|
1050
|
-
/* Added in Expat 2.1.0. */
|
|
1060
|
+
/* Added in Expat 2.1.0, removed in Expat 2.9.0. */
|
|
1051
1061
|
XML_FEATURE_ATTR_INFO,
|
|
1052
1062
|
/* Added in Expat 2.4.0. */
|
|
1053
1063
|
XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT,
|
|
@@ -1069,6 +1079,41 @@ typedef struct {
|
|
|
1069
1079
|
XMLPARSEAPI(const XML_Feature *)
|
|
1070
1080
|
XML_GetFeatureList(void);
|
|
1071
1081
|
|
|
1082
|
+
/* Added in Expat 2.9.0. */
|
|
1083
|
+
enum XML_Parser_Property {
|
|
1084
|
+
# if defined(XML_TESTING)
|
|
1085
|
+
XML_PROP_INVALID = 0,
|
|
1086
|
+
# endif
|
|
1087
|
+
# if XML_GE == 1
|
|
1088
|
+
XML_PROP_ALLOC_TRACKER_ACTIVATION_THRESHOLD = 1, // of type `uint64_t`
|
|
1089
|
+
XML_PROP_ALLOC_TRACKER_MAXIMUM_AMPLIFICATION = 2, // of type `double`
|
|
1090
|
+
XML_PROP_BILLION_LAUGHS_ACTIVATION_THRESHOLD = 3, // of type `uint64_t`
|
|
1091
|
+
XML_PROP_BILLION_LAUGHS_MAXIMUM_AMPLIFICATION = 4, // of type `double`
|
|
1092
|
+
# endif
|
|
1093
|
+
XML_PROP_REPARSE_DEFERRAL_ENABLED = 5, // of type `XML_Bool`
|
|
1094
|
+
/* more properties upcoming here */
|
|
1095
|
+
};
|
|
1096
|
+
|
|
1097
|
+
/* Added in Expat 2.9.0. */
|
|
1098
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1099
|
+
XML_GetPropertyBool(XML_Parser parser, enum XML_Parser_Property property,
|
|
1100
|
+
XML_Bool *value);
|
|
1101
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1102
|
+
XML_GetPropertyDouble(XML_Parser parser, enum XML_Parser_Property property,
|
|
1103
|
+
double *value);
|
|
1104
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1105
|
+
XML_GetPropertyUInt64(XML_Parser parser, enum XML_Parser_Property property,
|
|
1106
|
+
uint64_t *value);
|
|
1107
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1108
|
+
XML_SetPropertyBool(XML_Parser parser, enum XML_Parser_Property property,
|
|
1109
|
+
XML_Bool value);
|
|
1110
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1111
|
+
XML_SetPropertyDouble(XML_Parser parser, enum XML_Parser_Property property,
|
|
1112
|
+
double value);
|
|
1113
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1114
|
+
XML_SetPropertyUInt64(XML_Parser parser, enum XML_Parser_Property property,
|
|
1115
|
+
uint64_t value);
|
|
1116
|
+
|
|
1072
1117
|
# if defined(XML_DTD) || (defined(XML_GE) && XML_GE == 1)
|
|
1073
1118
|
/* Added in Expat 2.4.0 for XML_DTD defined and
|
|
1074
1119
|
* added in Expat 2.6.0 for XML_GE == 1. */
|
|
@@ -1101,8 +1146,8 @@ XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled);
|
|
|
1101
1146
|
See https://semver.org
|
|
1102
1147
|
*/
|
|
1103
1148
|
# define XML_MAJOR_VERSION 2
|
|
1104
|
-
# define XML_MINOR_VERSION
|
|
1105
|
-
# define XML_MICRO_VERSION
|
|
1149
|
+
# define XML_MINOR_VERSION 9
|
|
1150
|
+
# define XML_MICRO_VERSION 0
|
|
1106
1151
|
|
|
1107
1152
|
# ifdef __cplusplus
|
|
1108
1153
|
}
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
#define PACKAGE_NAME "expat"
|
|
71
71
|
|
|
72
72
|
/* Define to the full name and version of this package. */
|
|
73
|
-
#define PACKAGE_STRING "expat 2.
|
|
73
|
+
#define PACKAGE_STRING "expat 2.9.0"
|
|
74
74
|
|
|
75
75
|
/* Define to the one symbol short name of this package. */
|
|
76
76
|
#define PACKAGE_TARNAME "expat"
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
# define PACKAGE_URL ""
|
|
80
80
|
|
|
81
81
|
/* Define to the version of this package. */
|
|
82
|
-
#define PACKAGE_VERSION "2.
|
|
82
|
+
#define PACKAGE_VERSION "2.9.0"
|
|
83
83
|
|
|
84
84
|
/* Define to 1 if you have the ANSI C header files. */
|
|
85
85
|
# ifndef STDC_HEADERS
|
|
@@ -89,10 +89,6 @@
|
|
|
89
89
|
/* whether byteorder is bigendian */
|
|
90
90
|
/* #undef WORDS_BIGENDIAN */
|
|
91
91
|
|
|
92
|
-
/* Define to allow retrieving the byte offsets for attribute names and values.
|
|
93
|
-
*/
|
|
94
|
-
/* #undef XML_ATTR_INFO */
|
|
95
|
-
|
|
96
92
|
/* Define to specify how much context to retain around the current parse
|
|
97
93
|
point, 0 to disable. */
|
|
98
94
|
# define XML_CONTEXT_BYTES 1024
|
|
@@ -166,6 +166,9 @@ typedef char XML_LChar;
|
|
|
166
166
|
# endif /* XML_UNICODE */
|
|
167
167
|
|
|
168
168
|
# ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */
|
|
169
|
+
# if defined(__clang__) || defined(__GNUC__)
|
|
170
|
+
# warning Macro XML_LARGE_SIZE is deprecated, please use the 64bit location API functions instead.
|
|
171
|
+
# endif
|
|
169
172
|
typedef long long XML_Index;
|
|
170
173
|
typedef unsigned long long XML_Size;
|
|
171
174
|
# else
|
|
@@ -9,19 +9,19 @@
|
|
|
9
9
|
# The variable CVF_VERSION must be set before calling configure_file().
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
set(PACKAGE_VERSION "2.
|
|
12
|
+
set(PACKAGE_VERSION "2.9.0")
|
|
13
13
|
|
|
14
14
|
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
|
|
15
15
|
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
|
16
16
|
else()
|
|
17
17
|
|
|
18
|
-
if("2.
|
|
18
|
+
if("2.9.0" MATCHES "^([0-9]+)\\.")
|
|
19
19
|
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
|
20
20
|
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
|
|
21
21
|
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
|
|
22
22
|
endif()
|
|
23
23
|
else()
|
|
24
|
-
set(CVF_VERSION_MAJOR "2.
|
|
24
|
+
set(CVF_VERSION_MAJOR "2.9.0")
|
|
25
25
|
endif()
|
|
26
26
|
|
|
27
27
|
if(PACKAGE_FIND_VERSION_RANGE)
|
|
Binary file
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
prefix
|
|
1
|
+
prefix=${pcfiledir}/../..
|
|
2
2
|
exec_prefix=${prefix}
|
|
3
3
|
libdir=${exec_prefix}/lib
|
|
4
4
|
includedir=${prefix}/include
|
|
5
5
|
|
|
6
6
|
Name: expat
|
|
7
|
-
Version: 2.
|
|
7
|
+
Version: 2.9.0
|
|
8
8
|
Description: expat XML parser
|
|
9
9
|
URL: https://libexpat.github.io/
|
|
10
10
|
Libs: -L${libdir} -lexpat
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1a30fe6e87582a2965301d28fb2f9b81756b9c67ef7ba926cf75653900ee03a2
|
|
@@ -5,21 +5,108 @@
|
|
|
5
5
|
\___/_/\_\ .__/ \__,_|\__|
|
|
6
6
|
|_| XML parser
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
9
|
+
// <blink>Expat has UNFIXED SECURITY ISSUES!</blink> //
|
|
10
|
+
// Please see https://github.com/libexpat/libexpat/issues/1160 for details. //
|
|
11
|
+
// //
|
|
12
|
+
// Starting 2026-08-01, for up to six months my work maintaining libexpat //
|
|
13
|
+
// will be funded by the City of Munich as part of their //
|
|
14
|
+
// Open Source Sabbatical (https://opensource.muenchen.de/sabbatical.html) //
|
|
15
|
+
// — thank you! //
|
|
16
|
+
// //
|
|
17
|
+
// If your business relies on Expat beyond January 2027, please consider //
|
|
18
|
+
// funding the maintenance of Expat to ensure its health and security for //
|
|
19
|
+
// you and others. Thank you! //
|
|
20
|
+
// //
|
|
21
|
+
// Sebastian Pipping -- Berlin, 2026-09-22 //
|
|
22
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
23
|
+
|
|
24
|
+
Release 2.9.0 Mon October 5 2026
|
|
25
|
+
Security fixes:
|
|
26
|
+
#1392 CVE-2026-102633 -- Integer overflow in function
|
|
27
|
+
expat_realloc on 32bit platforms
|
|
28
|
+
#1393 CVE-2026-77214 -- Validate parameter `len` against available
|
|
29
|
+
buffer capacity in XML_ParseBuffer
|
|
30
|
+
|
|
31
|
+
Bug fixes:
|
|
32
|
+
#1387 lib: Handle OOM when copying encodingName in XML_ParserReset
|
|
33
|
+
|
|
34
|
+
New features:
|
|
35
|
+
#1327 lib: Introduce new "Properties API" to get and set
|
|
36
|
+
scalar properties for a single parser instance.
|
|
37
|
+
There are six new functions:
|
|
38
|
+
- XML_GetPropertyBool
|
|
39
|
+
- XML_GetPropertyDouble
|
|
40
|
+
- XML_GetPropertyUInt64
|
|
41
|
+
- XML_SetPropertyBool
|
|
42
|
+
- XML_SetPropertyDouble
|
|
43
|
+
- XML_SetPropertyUInt64
|
|
44
|
+
And two new enums:
|
|
45
|
+
- XML_Prop_Error
|
|
46
|
+
- XML_Parser_Property
|
|
47
|
+
#1323 lib: Introduce five new 64bit location API functions:
|
|
48
|
+
- XML_GetCurrentByteCount64
|
|
49
|
+
- XML_GetCurrentByteIndex64
|
|
50
|
+
- XML_GetCurrentColumnNumber64
|
|
51
|
+
- XML_GetCurrentLineNumber64
|
|
52
|
+
- XML_GetInputContext64
|
|
53
|
+
These five functions closely mirror their predecessors
|
|
54
|
+
but are not prone to 32bit integer wrap-around.
|
|
55
|
+
|
|
56
|
+
Other changes:
|
|
57
|
+
#1391 docs: Document the scope of function XML_GetErrorCode
|
|
58
|
+
#1395 docs: Document length expectations for XML_ParseBuffer
|
|
59
|
+
#1394 lib: Call unknown encoding release before parser teardown
|
|
60
|
+
#1370 #1373 lib: Drop (disabled-by-default) attribute info feature
|
|
61
|
+
These things are now gone:
|
|
62
|
+
- Public function XML_GetAttributeInfo
|
|
63
|
+
- Public struct XML_AttrInfo
|
|
64
|
+
- Macro XML_ATTR_INFO
|
|
65
|
+
These things are now causing build errors:
|
|
66
|
+
- Configure option --enable-xml-attr-info
|
|
67
|
+
- CMake option -DEXPAT_ATTR_INFO=ON
|
|
68
|
+
#1379 #1382 lib: Drop (disabled-by-default) minimum size feature
|
|
69
|
+
These things are now gone:
|
|
70
|
+
- Macro XML_MIN_SIZE
|
|
71
|
+
These things are now causing build errors:
|
|
72
|
+
- Configuring with -DXML_MIN_SIZE for CPPFLAGS/CFLAGS
|
|
73
|
+
- CMake option -DEXPAT_MIN_SIZE=ON
|
|
74
|
+
#1323 #1411 lib: Deprecate macro XML_LARGE_SIZE (use the new 64bit
|
|
75
|
+
location API functions instead please)
|
|
76
|
+
#1323 lib: Deprecate five location API functions that are cursed
|
|
77
|
+
with integer wrap-around:
|
|
78
|
+
- XML_GetCurrentByteCount
|
|
79
|
+
- XML_GetCurrentByteIndex
|
|
80
|
+
- XML_GetCurrentColumnNumber
|
|
81
|
+
- XML_GetCurrentLineNumber
|
|
82
|
+
- XML_GetInputContext
|
|
83
|
+
#1399 lib: Guard against out-of-handler use of XML_DefaultCurrent
|
|
84
|
+
#1400 lib: Use size_t for bytesAllocated and peakBytesAllocated
|
|
85
|
+
#1401 #1402 ..
|
|
86
|
+
#1404 #1405 lib|xmlwf|tests: Unify use of xcslen, xcscmp and xcsncmp
|
|
87
|
+
#1406 xmlwf: Add missing `#include "expat.h"`
|
|
88
|
+
#1389 #1396 Version info bumped from 13:5:12 (libexpat*.so.1.12.5)
|
|
89
|
+
to 14:0:13 (libexpat*.so.1.13.0); see https://verbump.de/
|
|
90
|
+
for what these numbers do
|
|
91
|
+
|
|
92
|
+
Infrastructure:
|
|
93
|
+
#1386 CI: Bump MinGW Clang from 23.1.1 to 23.1.2
|
|
94
|
+
#1410 CI: Bump Fil-C from 0.685 to 0.686
|
|
95
|
+
#1388 CI: Adapt to breaking changes regarding windows-11-arm image
|
|
96
|
+
#1403 CI: Limit package cache download runtime
|
|
97
|
+
|
|
98
|
+
Special thanks to:
|
|
99
|
+
Bénédikt Tran
|
|
100
|
+
Berkay Eren Ürün
|
|
101
|
+
Fabian Wahle (Hap Security)
|
|
102
|
+
Filippo Tedeschi
|
|
103
|
+
Junki Lee
|
|
104
|
+
Matthew Fernandez
|
|
105
|
+
Scott Moore
|
|
106
|
+
Wade Sparks III
|
|
107
|
+
and
|
|
108
|
+
City of Munich Open Source Sabbatical
|
|
109
|
+
VulnCheck
|
|
23
110
|
|
|
24
111
|
Release 2.8.5 Tue September 22 2026
|
|
25
112
|
Security fixes:
|
|
@@ -33,17 +120,6 @@ Release 2.8.5 Tue September 22 2026
|
|
|
33
120
|
Upstream CVSS 3.1 vector:
|
|
34
121
|
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (CVSS score: 9.8)
|
|
35
122
|
|
|
36
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
37
|
-
// The next release will drop two (disabled-by-default) features: //
|
|
38
|
-
// //
|
|
39
|
-
// - ATTR_INFO (-DXML_ATTR_INFO, -DEXPAT_ATTR_INFO, --enable-xml-attr-info, //
|
|
40
|
-
// function XML_GetAttributeInfo, struct XML_AttrInfo) //
|
|
41
|
-
// - MIN_SIZE (-DXML_MIN_SIZE, -DEXPAT_MIN_SIZE) //
|
|
42
|
-
// //
|
|
43
|
-
// If you need them in 2026 and beyond, please share your scenario at //
|
|
44
|
-
// GitHub issues #1370 (for ATTR_INFO) and/or #1379 (for MIN_SIZE). Thanks! //
|
|
45
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
46
|
-
|
|
47
123
|
Bug fixes:
|
|
48
124
|
#1346 lib: Fix OOM-related memory leak on a failed overflow check
|
|
49
125
|
#1371 lib: Fix memory alignment for architectures with 128bit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f2a611220b7618bd33dd84ae3a807e855cab88af3da33b8713bde6716fb79743
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
#ifndef Expat_INCLUDED
|
|
49
49
|
# define Expat_INCLUDED 1
|
|
50
50
|
|
|
51
|
-
# include <stdint.h> // for uint8_t
|
|
51
|
+
# include <stdint.h> // for int64_t, uint8_t, uint64_t
|
|
52
52
|
# include <stdlib.h>
|
|
53
53
|
# include "expat_external.h"
|
|
54
54
|
|
|
@@ -140,6 +140,26 @@ enum XML_Error {
|
|
|
140
140
|
XML_ERROR_NOT_STARTED,
|
|
141
141
|
};
|
|
142
142
|
|
|
143
|
+
/* Added in 2.9.0. */
|
|
144
|
+
enum XML_Prop_Error {
|
|
145
|
+
XML_PROP_ERROR_NONE = 0, // i.e. success
|
|
146
|
+
|
|
147
|
+
XML_PROP_ERROR_INVALID_KEY = 1, // i.e. the property is not known at all
|
|
148
|
+
XML_PROP_ERROR_INVALID_TYPE = 2, // i.e. the property is known but expects a
|
|
149
|
+
// different type (so a different
|
|
150
|
+
// getter/setter would need to be called)
|
|
151
|
+
XML_PROP_ERROR_INVALID_VALUE = 3, // i.e. the value is invalid (with a setter
|
|
152
|
+
// function) or a NULL-pointer (with a
|
|
153
|
+
// getter function)
|
|
154
|
+
|
|
155
|
+
XML_PROP_ERROR_PARSER_NULL = 4, // i.e. the parser argument is NULL
|
|
156
|
+
XML_PROP_ERROR_PARSER_NOT_ROOT = 5, // i.e. the parser is not a root parser
|
|
157
|
+
// but a subparser (and a root parser is
|
|
158
|
+
// needed)
|
|
159
|
+
|
|
160
|
+
/* potentially more error codes upcoming here */
|
|
161
|
+
};
|
|
162
|
+
|
|
143
163
|
enum XML_Content_Type {
|
|
144
164
|
XML_CTYPE_EMPTY = 1,
|
|
145
165
|
XML_CTYPE_ANY,
|
|
@@ -757,29 +777,6 @@ XML_GetSpecifiedAttributeCount(XML_Parser parser);
|
|
|
757
777
|
XMLPARSEAPI(int)
|
|
758
778
|
XML_GetIdAttributeIndex(XML_Parser parser);
|
|
759
779
|
|
|
760
|
-
# ifdef XML_ATTR_INFO
|
|
761
|
-
/* Source file byte offsets for the start and end of attribute names and values.
|
|
762
|
-
The value indices are exclusive of surrounding quotes; thus in a UTF-8 source
|
|
763
|
-
file an attribute value of "blah" will yield:
|
|
764
|
-
info->valueEnd - info->valueStart = 4 bytes.
|
|
765
|
-
*/
|
|
766
|
-
typedef struct {
|
|
767
|
-
XML_Index nameStart; /* Offset to beginning of the attribute name. */
|
|
768
|
-
XML_Index nameEnd; /* Offset after the attribute name's last byte. */
|
|
769
|
-
XML_Index valueStart; /* Offset to beginning of the attribute value. */
|
|
770
|
-
XML_Index valueEnd; /* Offset after the attribute value's last byte. */
|
|
771
|
-
} XML_AttrInfo;
|
|
772
|
-
|
|
773
|
-
/* Returns an array of XML_AttrInfo structures for the attribute/value pairs
|
|
774
|
-
passed in last call to the XML_StartElementHandler that were specified
|
|
775
|
-
in the start-tag rather than defaulted. Each attribute/value pair counts
|
|
776
|
-
as 1; thus the number of entries in the array is
|
|
777
|
-
XML_GetSpecifiedAttributeCount(parser) / 2.
|
|
778
|
-
*/
|
|
779
|
-
XMLPARSEAPI(const XML_AttrInfo *)
|
|
780
|
-
XML_GetAttributeInfo(XML_Parser parser);
|
|
781
|
-
# endif
|
|
782
|
-
|
|
783
780
|
/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is
|
|
784
781
|
detected. The last call to XML_Parse must have isFinal true; len
|
|
785
782
|
may be zero for this call (or any other).
|
|
@@ -964,15 +961,24 @@ XML_GetErrorCode(XML_Parser parser);
|
|
|
964
961
|
return 0 to indicate an error.
|
|
965
962
|
Note: XML_GetCurrentByteIndex returns -1 to indicate an error.
|
|
966
963
|
*/
|
|
964
|
+
XML_ATTR_DEPRECATED("please use XML_GetCurrentLineNumber64 instead")
|
|
967
965
|
XMLPARSEAPI(XML_Size) XML_GetCurrentLineNumber(XML_Parser parser);
|
|
966
|
+
XMLPARSEAPI(uint64_t) XML_GetCurrentLineNumber64(XML_Parser parser);
|
|
967
|
+
XML_ATTR_DEPRECATED("please use XML_GetCurrentColumnNumber64 instead")
|
|
968
968
|
XMLPARSEAPI(XML_Size) XML_GetCurrentColumnNumber(XML_Parser parser);
|
|
969
|
+
XMLPARSEAPI(uint64_t) XML_GetCurrentColumnNumber64(XML_Parser parser);
|
|
970
|
+
XML_ATTR_DEPRECATED("please use XML_GetCurrentByteIndex64 instead")
|
|
969
971
|
XMLPARSEAPI(XML_Index) XML_GetCurrentByteIndex(XML_Parser parser);
|
|
972
|
+
XMLPARSEAPI(int64_t) XML_GetCurrentByteIndex64(XML_Parser parser);
|
|
970
973
|
|
|
971
974
|
/* Return the number of bytes in the current event.
|
|
972
975
|
Returns 0 if the event is in an internal entity.
|
|
973
976
|
*/
|
|
977
|
+
XML_ATTR_DEPRECATED("please use XML_GetCurrentByteCount64 instead")
|
|
974
978
|
XMLPARSEAPI(int)
|
|
975
979
|
XML_GetCurrentByteCount(XML_Parser parser);
|
|
980
|
+
XMLPARSEAPI(uint64_t)
|
|
981
|
+
XML_GetCurrentByteCount64(XML_Parser parser);
|
|
976
982
|
|
|
977
983
|
/* If XML_CONTEXT_BYTES is >=1, returns the input buffer, sets
|
|
978
984
|
the integer pointed to by offset to the offset within this buffer
|
|
@@ -984,8 +990,11 @@ XML_GetCurrentByteCount(XML_Parser parser);
|
|
|
984
990
|
NOTE: The character pointer returned should not be used outside
|
|
985
991
|
the handler that makes the call.
|
|
986
992
|
*/
|
|
993
|
+
XML_ATTR_DEPRECATED("please use XML_GetInputContext64 instead")
|
|
987
994
|
XMLPARSEAPI(const char *)
|
|
988
995
|
XML_GetInputContext(XML_Parser parser, int *offset, int *size);
|
|
996
|
+
XMLPARSEAPI(const char *)
|
|
997
|
+
XML_GetInputContext64(XML_Parser parser, int64_t *offset, uint64_t *size);
|
|
989
998
|
|
|
990
999
|
/* For backwards compatibility with previous versions. */
|
|
991
1000
|
# define XML_GetErrorLineNumber XML_GetCurrentLineNumber
|
|
@@ -1040,6 +1049,7 @@ enum XML_FeatureEnum {
|
|
|
1040
1049
|
XML_FEATURE_UNICODE_WCHAR_T,
|
|
1041
1050
|
XML_FEATURE_DTD,
|
|
1042
1051
|
XML_FEATURE_CONTEXT_BYTES,
|
|
1052
|
+
/* Added in Expat 1.95.5, removed in Expat 2.9.0. */
|
|
1043
1053
|
XML_FEATURE_MIN_SIZE,
|
|
1044
1054
|
XML_FEATURE_SIZEOF_XML_CHAR,
|
|
1045
1055
|
XML_FEATURE_SIZEOF_XML_LCHAR,
|
|
@@ -1047,7 +1057,7 @@ enum XML_FeatureEnum {
|
|
|
1047
1057
|
XML_FEATURE_NS,
|
|
1048
1058
|
/* Added in Expat 2.0.1. */
|
|
1049
1059
|
XML_FEATURE_LARGE_SIZE,
|
|
1050
|
-
/* Added in Expat 2.1.0. */
|
|
1060
|
+
/* Added in Expat 2.1.0, removed in Expat 2.9.0. */
|
|
1051
1061
|
XML_FEATURE_ATTR_INFO,
|
|
1052
1062
|
/* Added in Expat 2.4.0. */
|
|
1053
1063
|
XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT,
|
|
@@ -1069,6 +1079,41 @@ typedef struct {
|
|
|
1069
1079
|
XMLPARSEAPI(const XML_Feature *)
|
|
1070
1080
|
XML_GetFeatureList(void);
|
|
1071
1081
|
|
|
1082
|
+
/* Added in Expat 2.9.0. */
|
|
1083
|
+
enum XML_Parser_Property {
|
|
1084
|
+
# if defined(XML_TESTING)
|
|
1085
|
+
XML_PROP_INVALID = 0,
|
|
1086
|
+
# endif
|
|
1087
|
+
# if XML_GE == 1
|
|
1088
|
+
XML_PROP_ALLOC_TRACKER_ACTIVATION_THRESHOLD = 1, // of type `uint64_t`
|
|
1089
|
+
XML_PROP_ALLOC_TRACKER_MAXIMUM_AMPLIFICATION = 2, // of type `double`
|
|
1090
|
+
XML_PROP_BILLION_LAUGHS_ACTIVATION_THRESHOLD = 3, // of type `uint64_t`
|
|
1091
|
+
XML_PROP_BILLION_LAUGHS_MAXIMUM_AMPLIFICATION = 4, // of type `double`
|
|
1092
|
+
# endif
|
|
1093
|
+
XML_PROP_REPARSE_DEFERRAL_ENABLED = 5, // of type `XML_Bool`
|
|
1094
|
+
/* more properties upcoming here */
|
|
1095
|
+
};
|
|
1096
|
+
|
|
1097
|
+
/* Added in Expat 2.9.0. */
|
|
1098
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1099
|
+
XML_GetPropertyBool(XML_Parser parser, enum XML_Parser_Property property,
|
|
1100
|
+
XML_Bool *value);
|
|
1101
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1102
|
+
XML_GetPropertyDouble(XML_Parser parser, enum XML_Parser_Property property,
|
|
1103
|
+
double *value);
|
|
1104
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1105
|
+
XML_GetPropertyUInt64(XML_Parser parser, enum XML_Parser_Property property,
|
|
1106
|
+
uint64_t *value);
|
|
1107
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1108
|
+
XML_SetPropertyBool(XML_Parser parser, enum XML_Parser_Property property,
|
|
1109
|
+
XML_Bool value);
|
|
1110
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1111
|
+
XML_SetPropertyDouble(XML_Parser parser, enum XML_Parser_Property property,
|
|
1112
|
+
double value);
|
|
1113
|
+
XMLPARSEAPI(enum XML_Prop_Error)
|
|
1114
|
+
XML_SetPropertyUInt64(XML_Parser parser, enum XML_Parser_Property property,
|
|
1115
|
+
uint64_t value);
|
|
1116
|
+
|
|
1072
1117
|
# if defined(XML_DTD) || (defined(XML_GE) && XML_GE == 1)
|
|
1073
1118
|
/* Added in Expat 2.4.0 for XML_DTD defined and
|
|
1074
1119
|
* added in Expat 2.6.0 for XML_GE == 1. */
|
|
@@ -1101,8 +1146,8 @@ XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled);
|
|
|
1101
1146
|
See https://semver.org
|
|
1102
1147
|
*/
|
|
1103
1148
|
# define XML_MAJOR_VERSION 2
|
|
1104
|
-
# define XML_MINOR_VERSION
|
|
1105
|
-
# define XML_MICRO_VERSION
|
|
1149
|
+
# define XML_MINOR_VERSION 9
|
|
1150
|
+
# define XML_MICRO_VERSION 0
|
|
1106
1151
|
|
|
1107
1152
|
# ifdef __cplusplus
|
|
1108
1153
|
}
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
#define PACKAGE_NAME "expat"
|
|
71
71
|
|
|
72
72
|
/* Define to the full name and version of this package. */
|
|
73
|
-
#define PACKAGE_STRING "expat 2.
|
|
73
|
+
#define PACKAGE_STRING "expat 2.9.0"
|
|
74
74
|
|
|
75
75
|
/* Define to the one symbol short name of this package. */
|
|
76
76
|
#define PACKAGE_TARNAME "expat"
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
# define PACKAGE_URL ""
|
|
80
80
|
|
|
81
81
|
/* Define to the version of this package. */
|
|
82
|
-
#define PACKAGE_VERSION "2.
|
|
82
|
+
#define PACKAGE_VERSION "2.9.0"
|
|
83
83
|
|
|
84
84
|
/* Define to 1 if you have the ANSI C header files. */
|
|
85
85
|
# ifndef STDC_HEADERS
|
|
@@ -89,10 +89,6 @@
|
|
|
89
89
|
/* whether byteorder is bigendian */
|
|
90
90
|
/* #undef WORDS_BIGENDIAN */
|
|
91
91
|
|
|
92
|
-
/* Define to allow retrieving the byte offsets for attribute names and values.
|
|
93
|
-
*/
|
|
94
|
-
/* #undef XML_ATTR_INFO */
|
|
95
|
-
|
|
96
92
|
/* Define to specify how much context to retain around the current parse
|
|
97
93
|
point, 0 to disable. */
|
|
98
94
|
# define XML_CONTEXT_BYTES 1024
|
|
@@ -166,6 +166,9 @@ typedef char XML_LChar;
|
|
|
166
166
|
# endif /* XML_UNICODE */
|
|
167
167
|
|
|
168
168
|
# ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */
|
|
169
|
+
# if defined(__clang__) || defined(__GNUC__)
|
|
170
|
+
# warning Macro XML_LARGE_SIZE is deprecated, please use the 64bit location API functions instead.
|
|
171
|
+
# endif
|
|
169
172
|
typedef long long XML_Index;
|
|
170
173
|
typedef unsigned long long XML_Size;
|
|
171
174
|
# else
|
|
@@ -9,19 +9,19 @@
|
|
|
9
9
|
# The variable CVF_VERSION must be set before calling configure_file().
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
set(PACKAGE_VERSION "2.
|
|
12
|
+
set(PACKAGE_VERSION "2.9.0")
|
|
13
13
|
|
|
14
14
|
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
|
|
15
15
|
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
|
16
16
|
else()
|
|
17
17
|
|
|
18
|
-
if("2.
|
|
18
|
+
if("2.9.0" MATCHES "^([0-9]+)\\.")
|
|
19
19
|
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
|
20
20
|
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
|
|
21
21
|
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
|
|
22
22
|
endif()
|
|
23
23
|
else()
|
|
24
|
-
set(CVF_VERSION_MAJOR "2.
|
|
24
|
+
set(CVF_VERSION_MAJOR "2.9.0")
|
|
25
25
|
endif()
|
|
26
26
|
|
|
27
27
|
if(PACKAGE_FIND_VERSION_RANGE)
|
|
Binary file
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
prefix
|
|
1
|
+
prefix=${pcfiledir}/../..
|
|
2
2
|
exec_prefix=${prefix}
|
|
3
3
|
libdir=${exec_prefix}/lib
|
|
4
4
|
includedir=${prefix}/include
|
|
5
5
|
|
|
6
6
|
Name: expat
|
|
7
|
-
Version: 2.
|
|
7
|
+
Version: 2.9.0
|
|
8
8
|
Description: expat XML parser
|
|
9
9
|
URL: https://libexpat.github.io/
|
|
10
10
|
Libs: -L${libdir} -lexpat
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1a30fe6e87582a2965301d28fb2f9b81756b9c67ef7ba926cf75653900ee03a2
|
|
@@ -5,21 +5,108 @@
|
|
|
5
5
|
\___/_/\_\ .__/ \__,_|\__|
|
|
6
6
|
|_| XML parser
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
9
|
+
// <blink>Expat has UNFIXED SECURITY ISSUES!</blink> //
|
|
10
|
+
// Please see https://github.com/libexpat/libexpat/issues/1160 for details. //
|
|
11
|
+
// //
|
|
12
|
+
// Starting 2026-08-01, for up to six months my work maintaining libexpat //
|
|
13
|
+
// will be funded by the City of Munich as part of their //
|
|
14
|
+
// Open Source Sabbatical (https://opensource.muenchen.de/sabbatical.html) //
|
|
15
|
+
// — thank you! //
|
|
16
|
+
// //
|
|
17
|
+
// If your business relies on Expat beyond January 2027, please consider //
|
|
18
|
+
// funding the maintenance of Expat to ensure its health and security for //
|
|
19
|
+
// you and others. Thank you! //
|
|
20
|
+
// //
|
|
21
|
+
// Sebastian Pipping -- Berlin, 2026-09-22 //
|
|
22
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
23
|
+
|
|
24
|
+
Release 2.9.0 Mon October 5 2026
|
|
25
|
+
Security fixes:
|
|
26
|
+
#1392 CVE-2026-102633 -- Integer overflow in function
|
|
27
|
+
expat_realloc on 32bit platforms
|
|
28
|
+
#1393 CVE-2026-77214 -- Validate parameter `len` against available
|
|
29
|
+
buffer capacity in XML_ParseBuffer
|
|
30
|
+
|
|
31
|
+
Bug fixes:
|
|
32
|
+
#1387 lib: Handle OOM when copying encodingName in XML_ParserReset
|
|
33
|
+
|
|
34
|
+
New features:
|
|
35
|
+
#1327 lib: Introduce new "Properties API" to get and set
|
|
36
|
+
scalar properties for a single parser instance.
|
|
37
|
+
There are six new functions:
|
|
38
|
+
- XML_GetPropertyBool
|
|
39
|
+
- XML_GetPropertyDouble
|
|
40
|
+
- XML_GetPropertyUInt64
|
|
41
|
+
- XML_SetPropertyBool
|
|
42
|
+
- XML_SetPropertyDouble
|
|
43
|
+
- XML_SetPropertyUInt64
|
|
44
|
+
And two new enums:
|
|
45
|
+
- XML_Prop_Error
|
|
46
|
+
- XML_Parser_Property
|
|
47
|
+
#1323 lib: Introduce five new 64bit location API functions:
|
|
48
|
+
- XML_GetCurrentByteCount64
|
|
49
|
+
- XML_GetCurrentByteIndex64
|
|
50
|
+
- XML_GetCurrentColumnNumber64
|
|
51
|
+
- XML_GetCurrentLineNumber64
|
|
52
|
+
- XML_GetInputContext64
|
|
53
|
+
These five functions closely mirror their predecessors
|
|
54
|
+
but are not prone to 32bit integer wrap-around.
|
|
55
|
+
|
|
56
|
+
Other changes:
|
|
57
|
+
#1391 docs: Document the scope of function XML_GetErrorCode
|
|
58
|
+
#1395 docs: Document length expectations for XML_ParseBuffer
|
|
59
|
+
#1394 lib: Call unknown encoding release before parser teardown
|
|
60
|
+
#1370 #1373 lib: Drop (disabled-by-default) attribute info feature
|
|
61
|
+
These things are now gone:
|
|
62
|
+
- Public function XML_GetAttributeInfo
|
|
63
|
+
- Public struct XML_AttrInfo
|
|
64
|
+
- Macro XML_ATTR_INFO
|
|
65
|
+
These things are now causing build errors:
|
|
66
|
+
- Configure option --enable-xml-attr-info
|
|
67
|
+
- CMake option -DEXPAT_ATTR_INFO=ON
|
|
68
|
+
#1379 #1382 lib: Drop (disabled-by-default) minimum size feature
|
|
69
|
+
These things are now gone:
|
|
70
|
+
- Macro XML_MIN_SIZE
|
|
71
|
+
These things are now causing build errors:
|
|
72
|
+
- Configuring with -DXML_MIN_SIZE for CPPFLAGS/CFLAGS
|
|
73
|
+
- CMake option -DEXPAT_MIN_SIZE=ON
|
|
74
|
+
#1323 #1411 lib: Deprecate macro XML_LARGE_SIZE (use the new 64bit
|
|
75
|
+
location API functions instead please)
|
|
76
|
+
#1323 lib: Deprecate five location API functions that are cursed
|
|
77
|
+
with integer wrap-around:
|
|
78
|
+
- XML_GetCurrentByteCount
|
|
79
|
+
- XML_GetCurrentByteIndex
|
|
80
|
+
- XML_GetCurrentColumnNumber
|
|
81
|
+
- XML_GetCurrentLineNumber
|
|
82
|
+
- XML_GetInputContext
|
|
83
|
+
#1399 lib: Guard against out-of-handler use of XML_DefaultCurrent
|
|
84
|
+
#1400 lib: Use size_t for bytesAllocated and peakBytesAllocated
|
|
85
|
+
#1401 #1402 ..
|
|
86
|
+
#1404 #1405 lib|xmlwf|tests: Unify use of xcslen, xcscmp and xcsncmp
|
|
87
|
+
#1406 xmlwf: Add missing `#include "expat.h"`
|
|
88
|
+
#1389 #1396 Version info bumped from 13:5:12 (libexpat*.so.1.12.5)
|
|
89
|
+
to 14:0:13 (libexpat*.so.1.13.0); see https://verbump.de/
|
|
90
|
+
for what these numbers do
|
|
91
|
+
|
|
92
|
+
Infrastructure:
|
|
93
|
+
#1386 CI: Bump MinGW Clang from 23.1.1 to 23.1.2
|
|
94
|
+
#1410 CI: Bump Fil-C from 0.685 to 0.686
|
|
95
|
+
#1388 CI: Adapt to breaking changes regarding windows-11-arm image
|
|
96
|
+
#1403 CI: Limit package cache download runtime
|
|
97
|
+
|
|
98
|
+
Special thanks to:
|
|
99
|
+
Bénédikt Tran
|
|
100
|
+
Berkay Eren Ürün
|
|
101
|
+
Fabian Wahle (Hap Security)
|
|
102
|
+
Filippo Tedeschi
|
|
103
|
+
Junki Lee
|
|
104
|
+
Matthew Fernandez
|
|
105
|
+
Scott Moore
|
|
106
|
+
Wade Sparks III
|
|
107
|
+
and
|
|
108
|
+
City of Munich Open Source Sabbatical
|
|
109
|
+
VulnCheck
|
|
23
110
|
|
|
24
111
|
Release 2.8.5 Tue September 22 2026
|
|
25
112
|
Security fixes:
|
|
@@ -33,17 +120,6 @@ Release 2.8.5 Tue September 22 2026
|
|
|
33
120
|
Upstream CVSS 3.1 vector:
|
|
34
121
|
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (CVSS score: 9.8)
|
|
35
122
|
|
|
36
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
37
|
-
// The next release will drop two (disabled-by-default) features: //
|
|
38
|
-
// //
|
|
39
|
-
// - ATTR_INFO (-DXML_ATTR_INFO, -DEXPAT_ATTR_INFO, --enable-xml-attr-info, //
|
|
40
|
-
// function XML_GetAttributeInfo, struct XML_AttrInfo) //
|
|
41
|
-
// - MIN_SIZE (-DXML_MIN_SIZE, -DEXPAT_MIN_SIZE) //
|
|
42
|
-
// //
|
|
43
|
-
// If you need them in 2026 and beyond, please share your scenario at //
|
|
44
|
-
// GitHub issues #1370 (for ATTR_INFO) and/or #1379 (for MIN_SIZE). Thanks! //
|
|
45
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
46
|
-
|
|
47
123
|
Bug fixes:
|
|
48
124
|
#1346 lib: Fix OOM-related memory leak on a failed overflow check
|
|
49
125
|
#1371 lib: Fix memory alignment for architectures with 128bit
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crossbind/port-expat-linux",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
4
|
-
"nativeVersion": "2.
|
|
3
|
+
"version": "2.0.0-beta.64",
|
|
4
|
+
"nativeVersion": "2.9.0",
|
|
5
5
|
"description": "Linux build of the precompiled Expat XML parser library, built with crossbind. Use it together with the main package @crossbind/port-expat.",
|
|
6
|
-
"homepage": "https://
|
|
6
|
+
"homepage": "https://crossbind.dev/ports/expat/",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "https://github.com/crossbind/crossbind.git"
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"node-api"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@crossbind/port-expat": "^2.0.0-beta.
|
|
24
|
+
"@crossbind/port-expat": "^2.0.0-beta.64"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"crossbind": "^2.0.0-beta.
|
|
27
|
+
"crossbind": "^2.0.0-beta.64"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|
|
30
30
|
"build": "crossbind build -p linux",
|
|
File without changes
|
|
File without changes
|
/package/dist/prebuilt/linux-arm64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat.cmake
RENAMED
|
File without changes
|
/package/dist/prebuilt/linux-x64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat-config.cmake
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/prebuilt/linux-x64-mt-release/lib/cmake/{expat-2.8.5 → expat-2.9.0}/expat.cmake
RENAMED
|
File without changes
|