From 795e2419b34a93297a555bf6b2b87025f9adbebf Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Mon, 26 Nov 2018 14:29:31 +0900 Subject: [PATCH] Imported Upstream version 2.2.6 Change-Id: I8bf03fb30c4edf6f5abad98c4bc0f2c1edd3ab1f Signed-off-by: DongHun Kwak --- CMake.README | 12 +- CMakeLists.txt | 84 +++- Changes | 48 +++ ConfigureChecks.cmake | 16 +- README.md | 2 +- configure | 47 ++- configure.ac | 24 +- conftools/ac_c_bigendian_cross.m4 | 6 +- conftools/config.guess | 116 +++--- conftools/config.sub | 64 ++-- conftools/install-sh | 21 +- conftools/ltmain.sh | 10 + doc/Makefile.am | 3 +- doc/Makefile.in | 3 +- examples/elements.c | 2 +- expat_config.h | 6 +- expat_config.h.cmake | 11 + lib/Makefile.am | 3 +- lib/Makefile.in | 3 +- lib/expat.h | 4 +- lib/expat.vcxproj | 4 +- lib/expat_static.vcxproj | 4 +- lib/expatw.vcxproj | 4 +- lib/expatw_static.vcxproj | 4 +- lib/siphash.h | 17 + lib/xmlparse.c | 66 ++-- lib/xmltok_impl.c | 9 +- tests/runtests.c | 615 ++++++++++++++++-------------- tests/structdata.c | 2 +- win32/expat.iss | 2 +- xmlwf/readfilemap.c | 5 +- xmlwf/xmlwf.vcxproj | 4 +- 32 files changed, 740 insertions(+), 481 deletions(-) diff --git a/CMake.README b/CMake.README index 6ec025b..57824a4 100644 --- a/CMake.README +++ b/CMake.README @@ -3,25 +3,25 @@ The cmake based buildsystem for expat works on Windows (cygwin, mingw, Visual Studio) and should work on all other platform cmake supports. -Assuming ~/expat-2.2.5 is the source directory of expat, add a subdirectory +Assuming ~/expat-2.2.6 is the source directory of expat, add a subdirectory build and change into that directory: -~/expat-2.2.5$ mkdir build && cd build -~/expat-2.2.5/build$ +~/expat-2.2.6$ mkdir build && cd build +~/expat-2.2.6/build$ From that directory, call cmake first, then call make, make test and make install in the usual way: -~/expat-2.2.5/build$ cmake .. +~/expat-2.2.6/build$ cmake .. -- The C compiler identification is GNU -- The CXX compiler identification is GNU .... -- Configuring done -- Generating done --- Build files have been written to: /home/patrick/expat-2.2.5/build +-- Build files have been written to: /home/patrick/expat-2.2.6/build If you want to specify the install location for your files, append -DCMAKE_INSTALL_PREFIX=/your/install/path to the cmake call. -~/expat-2.2.5/build$ make && make test && make install +~/expat-2.2.6/build$ make && make test && make install Scanning dependencies of target expat [ 5%] Building C object CMakeFiles/expat.dir/lib/xmlparse.c.o [ 11%] Building C object CMakeFiles/expat.dir/lib/xmlrole.c.o diff --git a/CMakeLists.txt b/CMakeLists.txt index 504d087..a537f8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,13 +3,15 @@ project(expat) -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 2.8.10) set(PACKAGE_BUGREPORT "expat-bugs@libexpat.org") set(PACKAGE_NAME "expat") -set(PACKAGE_VERSION "2.2.5") +set(PACKAGE_VERSION "2.2.6") set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_TARNAME "${PACKAGE_NAME}") +include(GNUInstallDirs) + if(WINCE) set(BUILD_tools_default OFF) else() @@ -18,7 +20,7 @@ endif() if(MSVC OR NOT BUILD_tools_default) set(BUILD_doc_default OFF) else() - find_program(DOCBOOK_TO_MAN NAMES docbook2x-man docbook2man docbook-to-man) + find_program(DOCBOOK_TO_MAN NAMES docbook2x-man db2x_docbook2man docbook2man docbook-to-man) if(DOCBOOK_TO_MAN) set(BUILD_doc_default ON) else() @@ -47,12 +49,17 @@ endif() set(XML_CONTEXT_BYTES 1024 CACHE STRING "Define to specify how much context to retain around the current parse point") option(XML_DTD "Define to make parameter entity parsing functionality available" ON) option(XML_NS "Define to make XML Namespaces functionality available" ON) +option(WARNINGS_AS_ERRORS "Treat all compiler warnings as errors" OFF) if(NOT WIN32) option(XML_DEV_URANDOM "Define to include code reading entropy from `/dev/urandom'." ON) if(XML_DEV_URANDOM) - add_definitions(-DXML_DEV_URANDOM) - endif() + set(XML_DEV_URANDOM 1) + else(XML_DEV_URANDOM) + set(XML_DEV_URANDOM 0) + endif(XML_DEV_URANDOM) endif() +option(XML_UNICODE "Use UTF-16 encoded chars (two bytes) instead of UTF-8" OFF) +option(XML_UNICODE_WCHAR_T "Use wchar_t to represent UTF-16 instead of unsigned short" OFF) if(XML_DTD) set(XML_DTD 1) @@ -64,6 +71,25 @@ if(XML_NS) else(XML_NS) set(XML_NS 0) endif(XML_NS) +if(XML_UNICODE) + set(XML_UNICODE 1) +else(XML_UNICODE) + set(XML_UNICODE 0) +endif(XML_UNICODE) +if(XML_UNICODE_WCHAR_T) + set(XML_UNICODE_WCHAR_T 1) +else(XML_UNICODE_WCHAR_T) + set(XML_UNICODE_WCHAR_T 0) +endif(XML_UNICODE_WCHAR_T) + +if(XML_UNICODE_WCHAR_T AND NOT XML_UNICODE) + message(SEND_ERROR "Option XML_UNICODE_WCHAR_T=ON may not be used without XML_UNICODE=ON.") + set(XML_UNICODE 1) +endif(XML_UNICODE_WCHAR_T AND NOT XML_UNICODE) + +if(BUILD_tools AND (XML_UNICODE AND NOT XML_UNICODE_WCHAR_T)) + message(SEND_ERROR "The xmlwf tool can not be built with option XML_UNICODE_WCHAR_T=OFF and XML_UNICODE=ON. Either set XML_UNICODE_WCHAR_T=ON or BUILD_tools=OFF.") +endif() if(BUILD_tests) enable_testing() @@ -75,9 +101,35 @@ set(EXTRA_COMPILE_FLAGS) if(FLAG_NO_STRICT_ALIASING) set(EXTRA_COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS} -fno-strict-aliasing") endif() +if (WARNINGS_AS_ERRORS) + if(MSVC) + add_definitions(/WX) + else(MSVC) + set(EXTRA_COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS} -Werror") + endif(MSVC) +endif(WARNINGS_AS_ERRORS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_COMPILE_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_COMPILE_FLAGS}") +set(MSVC_USE_STATIC_CRT OFF CACHE BOOL "Use /MT flag (static CRT) when compiling in MSVC") +if (MSVC) + if (MSVC_USE_STATIC_CRT) + message("-- Using static CRT ${MSVC_USE_STATIC_CRT}") + foreach(flag_var + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL + CMAKE_CXX_FLAGS_RELWITHDEBINFO + CMAKE_C_FLAGS_DEBUG + CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL + CMAKE_C_FLAGS_RELWITHDEBINFO + ) + string(REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endforeach() + endif() +endif() + include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lib) if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS -wd4996) @@ -113,7 +165,7 @@ if(USE_libbsd) endif() set(LIBCURRENT 7) # sync -set(LIBREVISION 7) # with +set(LIBREVISION 8) # with set(LIBAGE 6) # configure.ac! math(EXPR LIBCURRENT_MINUS_AGE "${LIBCURRENT} - ${LIBAGE}") @@ -129,18 +181,18 @@ macro(expat_install) endif() endmacro() -expat_install(TARGETS expat RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) +expat_install(TARGETS expat RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) set(prefix ${CMAKE_INSTALL_PREFIX}) -set(exec_prefix "\${prefix}/bin") -set(libdir "\${prefix}/lib") +set(exec_prefix "\${prefix}") +set(libdir "\${exec_prefix}/lib") set(includedir "\${prefix}/include") -configure_file(expat.pc.in ${CMAKE_CURRENT_BINARY_DIR}/expat.pc) +configure_file(expat.pc.in ${CMAKE_CURRENT_BINARY_DIR}/expat.pc @ONLY) -expat_install(FILES lib/expat.h lib/expat_external.h DESTINATION include) -expat_install(FILES ${CMAKE_CURRENT_BINARY_DIR}/expat.pc DESTINATION lib/pkgconfig) +expat_install(FILES lib/expat.h lib/expat_external.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +expat_install(FILES ${CMAKE_CURRENT_BINARY_DIR}/expat.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) if(BUILD_tools) set(xmlwf_SRCS @@ -153,10 +205,10 @@ if(BUILD_tools) add_executable(xmlwf ${xmlwf_SRCS}) set_property(TARGET xmlwf PROPERTY RUNTIME_OUTPUT_DIRECTORY xmlwf) target_link_libraries(xmlwf expat) - expat_install(TARGETS xmlwf DESTINATION bin) + expat_install(TARGETS xmlwf DESTINATION ${CMAKE_INSTALL_BINDIR}) if(BUILD_doc) add_custom_command(TARGET expat PRE_BUILD COMMAND "${DOCBOOK_TO_MAN}" "${PROJECT_SOURCE_DIR}/doc/xmlwf.xml" && mv "XMLWF.1" "${PROJECT_SOURCE_DIR}/doc/xmlwf.1") - expat_install(FILES "${PROJECT_SOURCE_DIR}/doc/xmlwf.1" DESTINATION share/man/man1) + expat_install(FILES "${PROJECT_SOURCE_DIR}/doc/xmlwf.1" DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) endif() endif() diff --git a/Changes b/Changes index 8044982..b0ee42c 100644 --- a/Changes +++ b/Changes @@ -2,6 +2,53 @@ NOTE: We are looking for help with a few things: https://github.com/libexpat/libexpat/labels/help%20wanted If you can help, please get in touch. Thanks! +Release 2.2.6 Sun August 12 2018 + Bug fixes: + #170 #206 Avoid doing arithmetic with NULL pointers in XML_GetBuffer + #204 #205 Fix 2.2.5 regression with suspend-resume while parsing + a document like '' + + Other changes: + #165 #168 Autotools: Fix docbook-related configure syntax error + #166 Autotools: Avoid grep option `-q` for Solaris + #167 Autotools: Support + ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation" + #159 #167 Autotools: Support DOCBOOK_TO_MAN command which produces + xmlwf.1 rather than XMLWF.1; also covers case insensitive + file systems + #181 Autotools: Drop -rpath option passed to libtool + #188 Autotools: Detect and deny SGML docbook2man as ours is XML + #188 Autotools/CMake: Support command db2x_docbook2man as well + #174 CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF + #184 #185 CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF + #207 #208 CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T, + both defaulting to OFF + #175 CMake: Prefer check_symbol_exists over check_function_exists + #176 CMake: Create the same pkg-config file as with GNU Autotools + #178 #179 CMake: Use GNUInstallDirs module to set proper defaults for + install directories + #208 CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM + #180 Windows: Fix compilation of test suite for Visual Studio 2008 + #131 #173 #202 Address compiler warnings + #187 #190 #200 Fix miscellaneous typos + Version info bumped from 7:7:6 to 7:8:6 + + Special thanks to: + Anton Maklakov + Benjamin Peterson + Brad King + Franek Korta + Frank Rast + Joe Orton + luzpaz + Pedro Vicente + Rainer Jung + Rhodri James + Rolf Ade + Rolf Eike Beer + Thomas Beutlich + Tomasz Kłoczko + Release 2.2.5 Tue October 31 2017 Bug fixes: #8 If the parser runs out of memory, make sure its internal @@ -22,6 +69,7 @@ Release 2.2.5 Tue October 31 2017 output was incomplete #127 Windows: Fix test suite compilation #126 #127 Windows: Fix compilation for Visual Studio 2012 + Windows: Upgrade shipped project files to Visual Studio 2017 #33 #132 tests: Mass-fix compilation for XML_UNICODE_WCHAR_T #129 examples: Fix compilation for XML_UNICODE_WCHAR_T #130 benchmark: Fix compilation for XML_UNICODE_WCHAR_T diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index d97b397..dbb4921 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -2,7 +2,6 @@ include(CheckCCompilerFlag) include(CheckCSourceCompiles) include(CheckIncludeFile) include(CheckIncludeFiles) -include(CheckFunctionExists) include(CheckSymbolExists) include(TestBigEndian) @@ -18,18 +17,21 @@ check_include_file("sys/stat.h" HAVE_SYS_STAT_H) check_include_file("sys/types.h" HAVE_SYS_TYPES_H) check_include_file("unistd.h" HAVE_UNISTD_H) -check_function_exists("getpagesize" HAVE_GETPAGESIZE) -check_function_exists("bcopy" HAVE_BCOPY) +check_symbol_exists("getpagesize" "unistd.h" HAVE_GETPAGESIZE) +check_symbol_exists("bcopy" "strings.h" HAVE_BCOPY) check_symbol_exists("memmove" "string.h" HAVE_MEMMOVE) -check_function_exists("mmap" HAVE_MMAP) -check_function_exists("getrandom" HAVE_GETRANDOM) +check_symbol_exists("mmap" "sys/mman.h" HAVE_MMAP) +check_symbol_exists("getrandom" "sys/random.h" HAVE_GETRANDOM) if(USE_libbsd) set(CMAKE_REQUIRED_LIBRARIES "${LIB_BSD}") + set(_bsd "bsd/") +else() + set(_bsd "") endif() -check_function_exists("arc4random_buf" HAVE_ARC4RANDOM_BUF) +check_symbol_exists("arc4random_buf" "${_bsd}stdlib.h" HAVE_ARC4RANDOM_BUF) if(NOT HAVE_ARC4RANDOM_BUF) - check_function_exists("arc4random" HAVE_ARC4RANDOM) + check_symbol_exists("arc4random" "${_bsd}stdlib.h" HAVE_ARC4RANDOM) endif() set(CMAKE_REQUIRED_LIBRARIES) diff --git a/README.md b/README.md index 984e927..2c7e6ac 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/libexpat/libexpat?svg=true)](https://ci.appveyor.com/project/libexpat/libexpat) -# Expat, Release 2.2.5 +# Expat, Release 2.2.6 This is Expat, a C library for parsing XML, started by [James Clark](https://en.wikipedia.org/wiki/James_Clark_(programmer)) in 1997. diff --git a/configure b/configure index f24a68a..b5ddbb6 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for expat 2.2.5. +# Generated by GNU Autoconf 2.69 for expat 2.2.6. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='expat' PACKAGE_TARNAME='expat' -PACKAGE_VERSION='2.2.5' -PACKAGE_STRING='expat 2.2.5' +PACKAGE_VERSION='2.2.6' +PACKAGE_STRING='expat 2.2.6' PACKAGE_BUGREPORT='expat-bugs@libexpat.org' PACKAGE_URL='' @@ -1344,7 +1344,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures expat 2.2.5 to adapt to many kinds of systems. +\`configure' configures expat 2.2.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1414,7 +1414,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of expat 2.2.5:";; + short | recursive ) echo "Configuration of expat 2.2.6:";; esac cat <<\_ACEOF @@ -1540,7 +1540,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -expat configure 2.2.5 +expat configure 2.2.6 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2084,7 +2084,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by expat $as_me 2.2.5, which was +It was created by expat $as_me 2.2.6, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2953,7 +2953,7 @@ fi # Define the identity of the package. PACKAGE='expat' - VERSION='2.2.5' + VERSION='2.2.6' cat >>confdefs.h <<_ACEOF @@ -3051,7 +3051,7 @@ fi LIBCURRENT=7 # sync -LIBREVISION=7 # with +LIBREVISION=8 # with LIBAGE=6 # CMakeLists.txt! CPPFLAGS="${CPPFLAGS} -DHAVE_EXPAT_CONFIG_H" @@ -16651,7 +16651,7 @@ cat >>confdefs.h <<_ACEOF _ACEOF if test $ac_cv_c_bigendian = unknown; then - as_fn_error please pre-set ac_cv_c_bigendian "unknown endianess - sorry" "$LINENO" 5 + as_fn_error please pre-set ac_cv_c_bigendian "unknown endianness - sorry" "$LINENO" 5 fi @@ -16778,7 +16778,7 @@ else fi - if echo -- "${host}" | fgrep -q mingw; then + if echo -- "${host}" | ${FGREP} mingw >/dev/null; then MINGW_TRUE= MINGW_FALSE='#' else @@ -16786,7 +16786,7 @@ else MINGW_FALSE= fi - if echo -- "${CPPFLAGS}${CFLAGS}" | fgrep -q XML_UNICODE; then + if echo -- "${CPPFLAGS}${CFLAGS}" | ${FGREP} XML_UNICODE >/dev/null; then UNICODE_TRUE= UNICODE_FALSE='#' else @@ -17264,7 +17264,7 @@ fi if test "x$with_docbook" != xno; then : - for ac_prog in docbook2x-man docbook2man docbook-to-man + for ac_prog in docbook2x-man db2x_docbook2man docbook2man docbook-to-man do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -17305,12 +17305,23 @@ fi test -n "$DOCBOOK_TO_MAN" && break done -test -n "$DOCBOOK_TO_MAN" || DOCBOOK_TO_MAN="if test "x$with_docbook" != xcheck; then - as_fn_error $? "Required program 'docbook2x-man' not found." "$LINENO" 5" +fi +if test "x${DOCBOOK_TO_MAN}" = x -a "x$with_docbook" = xyes; then : + as_fn_error $? "Required program 'docbook2x-man' not found." "$LINENO" 5 +fi +if test "x${DOCBOOK_TO_MAN}" != x -a "x$with_docbook" != xno; then : + if ${DOCBOOK_TO_MAN} --help | grep -i -q -F sgmlbase; then : + as_fn_error $? "Your local ${DOCBOOK_TO_MAN} was found to work with SGML rather + than XML. Please install docbook2X and use variable DOCBOOK_TO_MAN to point + configure to command docbook2x-man of docbook2X. + Or use DOCBOOK_TO_MAN=\"xmlto man --skip-validation\" if you have xmlto around. + You can also configure using --without-docbook if you can do without a man + page for xmlwf." "$LINENO" 5 +fi fi - if test x${DOCBOOK_TO_MAN} != x; then + if test "x${DOCBOOK_TO_MAN}" != x; then WITH_DOCBOOK_TRUE= WITH_DOCBOOK_FALSE='#' else @@ -17875,7 +17886,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by expat $as_me 2.2.5, which was +This file was extended by expat $as_me 2.2.6, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17941,7 +17952,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -expat config.status 2.2.5 +expat config.status 2.2.6 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index c24f518..a68d9a4 100644 --- a/configure.ac +++ b/configure.ac @@ -47,7 +47,7 @@ dnl If the API changes incompatibly set LIBAGE back to 0 dnl LIBCURRENT=7 # sync -LIBREVISION=7 # with +LIBREVISION=8 # with LIBAGE=6 # CMakeLists.txt! CPPFLAGS="${CPPFLAGS} -DHAVE_EXPAT_CONFIG_H" @@ -106,8 +106,8 @@ AC_ARG_WITH([xmlwf], [ AS_HELP_STRING([--without-xmlwf], [do not build xmlwf])], [], [with_xmlwf=yes]) AM_CONDITIONAL([WITH_XMLWF], [test x${with_xmlwf} = xyes]) -AM_CONDITIONAL([MINGW], [echo -- "${host}" | fgrep -q mingw]) -AM_CONDITIONAL([UNICODE], [echo -- "${CPPFLAGS}${CFLAGS}" | fgrep -q XML_UNICODE]) +AM_CONDITIONAL([MINGW], [echo -- "${host}" | ${FGREP} mingw >/dev/null]) +AM_CONDITIONAL([UNICODE], [echo -- "${CPPFLAGS}${CFLAGS}" | ${FGREP} XML_UNICODE >/dev/null]) AC_ARG_WITH([libbsd], [ @@ -237,11 +237,19 @@ AS_HELP_STRING([--without-docbook], AC_ARG_VAR([DOCBOOK_TO_MAN], [docbook2x-man command]) AS_IF([test "x$with_docbook" != xno], - [AC_CHECK_PROGS([DOCBOOK_TO_MAN], [docbook2x-man docbook2man docbook-to-man], - [if test "x$with_docbook" != xcheck; then - AC_MSG_ERROR([Required program 'docbook2x-man' not found.])])]) - -AM_CONDITIONAL(WITH_DOCBOOK, [test x${DOCBOOK_TO_MAN} != x]) + [AC_CHECK_PROGS([DOCBOOK_TO_MAN], [docbook2x-man db2x_docbook2man docbook2man docbook-to-man])]) +AS_IF([test "x${DOCBOOK_TO_MAN}" = x -a "x$with_docbook" = xyes], + [AC_MSG_ERROR([Required program 'docbook2x-man' not found.])]) +AS_IF([test "x${DOCBOOK_TO_MAN}" != x -a "x$with_docbook" != xno], + [AS_IF([${DOCBOOK_TO_MAN} --help | grep -i -q -F sgmlbase], + [AC_MSG_ERROR([Your local ${DOCBOOK_TO_MAN} was found to work with SGML rather + than XML. Please install docbook2X and use variable DOCBOOK_TO_MAN to point + configure to command docbook2x-man of docbook2X. + Or use DOCBOOK_TO_MAN="xmlto man --skip-validation" if you have xmlto around. + You can also configure using --without-docbook if you can do without a man + page for xmlwf.])])]) + +AM_CONDITIONAL(WITH_DOCBOOK, [test "x${DOCBOOK_TO_MAN}" != x]) AC_CONFIG_FILES([Makefile expat.pc]) AC_CONFIG_FILES([ diff --git a/conftools/ac_c_bigendian_cross.m4 b/conftools/ac_c_bigendian_cross.m4 index e95ffb6..49ab6c4 100644 --- a/conftools/ac_c_bigendian_cross.m4 +++ b/conftools/ac_c_bigendian_cross.m4 @@ -1,11 +1,11 @@ dnl @synopsis AC_C_BIGENDIAN_CROSS dnl -dnl Check endianess even when crosscompiling +dnl Check endianness even when crosscompiling dnl (partially based on the original AC_C_BIGENDIAN). dnl dnl The implementation will create a binary, and instead of running dnl the binary it will be grep'ed for some symbols that will look -dnl different for different endianess of the binary. +dnl different for different endianness of the binary. dnl dnl @version $Id: ac_c_bigendian_cross.m4,v 1.1 2001/07/24 19:51:35 fdrake Exp $ dnl @author Guido Draheim @@ -76,6 +76,6 @@ else fi AC_DEFINE_UNQUOTED(BYTEORDER, $BYTEORDER, [1234 = LIL_ENDIAN, 4321 = BIGENDIAN]) if test $ac_cv_c_bigendian = unknown; then - AC_MSG_ERROR(unknown endianess - sorry, please pre-set ac_cv_c_bigendian) + AC_MSG_ERROR(unknown endianness - sorry, please pre-set ac_cv_c_bigendian) fi ]) diff --git a/conftools/config.guess b/conftools/config.guess index 83e1e95..3ecb90b 100755 --- a/conftools/config.guess +++ b/conftools/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2017-01-01' +timestamp='2018-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ timestamp='2017-01-01' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,7 +27,7 @@ timestamp='2017-01-01' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -39,7 +39,7 @@ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -244,6 +244,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} exit ;; + *:MidnightBSD:*:*) + echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -259,6 +262,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:Sortix:*:*) echo ${UNAME_MACHINE}-unknown-sortix exit ;; + *:Redox:*:*) + echo ${UNAME_MACHINE}-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -315,15 +324,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; @@ -485,13 +485,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); @@ -614,7 +614,7 @@ EOF *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and @@ -635,8 +635,8 @@ EOF 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` @@ -749,7 +749,7 @@ EOF { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -758,7 +758,7 @@ EOF *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) @@ -837,10 +837,11 @@ EOF UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin @@ -854,10 +855,6 @@ EOF *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; @@ -873,27 +870,12 @@ EOF echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; @@ -1107,7 +1089,7 @@ EOF i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + i*86:*:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} @@ -1314,14 +1296,21 @@ EOF if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub @@ -1345,15 +1334,18 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) + NEO-*:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; - NSR-?:NONSTOP_KERNEL:*:*) + NSR-*:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk${UNAME_RELEASE} + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; @@ -1425,16 +1417,28 @@ EOF exit ;; esac +echo "$0: unable to guess system type" >&2 + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ timestamp='2017-01-01' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -67,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -229,9 +229,6 @@ case $os in -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; -psos*) os=-psos ;; @@ -263,7 +260,7 @@ case $basic_machine in | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ - | i370 | i860 | i960 | ia64 \ + | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ @@ -315,7 +312,7 @@ case $basic_machine in | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ - | we32k \ + | wasm32 \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown @@ -388,7 +385,7 @@ case $basic_machine in | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ @@ -446,6 +443,7 @@ case $basic_machine in | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ + | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -641,7 +639,7 @@ case $basic_machine in basic_machine=rs6000-bull os=-bosx ;; - dpx2* | dpx2*-bull) + dpx2*) basic_machine=m68k-bull os=-sysv3 ;; @@ -921,7 +919,7 @@ case $basic_machine in basic_machine=v70-nec os=-sysv ;; - next | m*-next ) + next | m*-next) basic_machine=m68k-next case $os in -nextstep* ) @@ -966,6 +964,9 @@ case $basic_machine in nsr-tandem) basic_machine=nsr-tandem ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf @@ -1261,6 +1262,9 @@ case $basic_machine in basic_machine=a29k-wrs os=-vxworks ;; + wasm32) + basic_machine=wasm32-unknown + ;; w65*) basic_machine=w65-wdc os=-none @@ -1269,6 +1273,9 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; + x64) + basic_machine=x86_64-pc + ;; xbox) basic_machine=i686-pc os=-mingw32 @@ -1376,8 +1383,8 @@ esac if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases that might get confused + # with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux @@ -1397,9 +1404,9 @@ case $os in -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; - # First accept the basic system types. + # Now accept the basic system types. # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. + # Each alternative MUST end in a * to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ @@ -1427,7 +1434,7 @@ case $os in | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1502,7 +1509,7 @@ case $os in -nova*) os=-rtmk-nova ;; - -ns2 ) + -ns2) os=-nextstep2 ;; -nsk*) @@ -1557,6 +1564,19 @@ case $os in -dicos*) os=-dicos ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; -nacl*) ;; -ios) @@ -1704,7 +1724,7 @@ case $basic_machine in m88k-omron*) os=-luna ;; - *-next ) + *-next) os=-nextstep ;; *-sequent) @@ -1839,7 +1859,7 @@ echo $basic_machine$os exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/conftools/install-sh b/conftools/install-sh index 0360b79..c143b86 100755 --- a/conftools/install-sh +++ b/conftools/install-sh @@ -324,34 +324,41 @@ do # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) + # $RANDOM is not portable (e.g. dash); use it when possible to + # lower collision chance tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + # As "mkdir -p" follows symlinks and we work in /tmp possibly; so + # create the $tmpdir first (and fail if unsuccessful) to make sure + # that nobody tries to guess the $tmpdir name. if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi - rmdir "$tmpdir/d" "$tmpdir" + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; diff --git a/conftools/ltmain.sh b/conftools/ltmain.sh index b2549ee..e774ddf 100644 --- a/conftools/ltmain.sh +++ b/conftools/ltmain.sh @@ -7127,6 +7127,16 @@ func_mode_link () *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac + + # As we are forced to pass -nostdlib to g++ during linking, the option + # -pthread{,s} is not in effect; add the -lpthread to $deplist + # explicitly to link correctly. + if test "$tagname" = CXX -a x"$with_gcc" = xyes; then + case "$arg" in + -pthread*) func_append deplibs " -lpthread" ;; + esac + fi + continue ;; diff --git a/doc/Makefile.am b/doc/Makefile.am index 7c79aa4..d8a35c0 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -32,8 +32,9 @@ dist_man_MANS = xmlwf.1 xmlwf.1: xmlwf.xml if WITH_DOCBOOK + -rm -f $@ $(DOCBOOK_TO_MAN) $< - mv XMLWF.1 $@ + test -f $@ || mv XMLWF.1 $@ else @echo 'ERROR: Configure with --with-docbook for "make dist".' 1>&2 @false diff --git a/doc/Makefile.in b/doc/Makefile.in index 8e400b0..6a206e8 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -560,8 +560,9 @@ uninstall-man: uninstall-man1 xmlwf.1: xmlwf.xml +@WITH_DOCBOOK_TRUE@ -rm -f $@ @WITH_DOCBOOK_TRUE@ $(DOCBOOK_TO_MAN) $< -@WITH_DOCBOOK_TRUE@ mv XMLWF.1 $@ +@WITH_DOCBOOK_TRUE@ test -f $@ || mv XMLWF.1 $@ @WITH_DOCBOOK_FALSE@ @echo 'ERROR: Configure with --with-docbook for "make dist".' 1>&2 @WITH_DOCBOOK_FALSE@ @false diff --git a/examples/elements.c b/examples/elements.c index 2f253f7..9d2027e 100644 --- a/examples/elements.c +++ b/examples/elements.c @@ -91,7 +91,7 @@ main(int argc, char *argv[]) do { size_t len = fread(buf, 1, sizeof(buf), stdin); done = len < sizeof(buf); - if (XML_Parse(parser, buf, len, done) == XML_STATUS_ERROR) { + if (XML_Parse(parser, buf, (int)len, done) == XML_STATUS_ERROR) { fprintf(stderr, "%" XML_FMT_STR " at line %" XML_FMT_INT_MOD "u\n", XML_ErrorString(XML_GetErrorCode(parser)), diff --git a/expat_config.h b/expat_config.h index 3305431..cebfdc9 100644 --- a/expat_config.h +++ b/expat_config.h @@ -80,7 +80,7 @@ #define PACKAGE_NAME "expat" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "expat 2.2.5" +#define PACKAGE_STRING "expat 2.2.6" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "expat" @@ -89,13 +89,13 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "2.2.5" +#define PACKAGE_VERSION "2.2.6" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "2.2.5" +#define VERSION "2.2.6" /* whether byteorder is bigendian */ /* #undef WORDS_BIGENDIAN */ diff --git a/expat_config.h.cmake b/expat_config.h.cmake index a93c971..3e23f48 100644 --- a/expat_config.h.cmake +++ b/expat_config.h.cmake @@ -94,6 +94,17 @@ /* Define to make XML Namespaces functionality available. */ #cmakedefine XML_NS +#if ! defined(_WIN32) +/* Define to extract entropy from /dev/urandom. */ +#cmakedefine XML_DEV_URANDOM +#endif + +/* Define to use UTF-16 chars (two bytes). */ +#cmakedefine XML_UNICODE + +/* Define to use wchar_t as UTF-16 char type instead of unsigned short. */ +#cmakedefine XML_UNICODE_WCHAR_T + /* Define to __FUNCTION__ or "" if `__func__' does not conform to ANSI C. */ #ifdef _MSC_VER # define __func__ __FUNCTION__ diff --git a/lib/Makefile.am b/lib/Makefile.am index d655a29..534369e 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -37,8 +37,7 @@ lib_LTLIBRARIES = libexpat.la libexpat_la_LDFLAGS = \ -no-undefined \ - -version-info @LIBCURRENT@:@LIBREVISION@:@LIBAGE@ \ - -rpath $(libdir) + -version-info @LIBCURRENT@:@LIBREVISION@:@LIBAGE@ libexpat_la_SOURCES = \ loadlibrary.c \ diff --git a/lib/Makefile.in b/lib/Makefile.in index 729ee02..91b27b3 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -375,8 +375,7 @@ include_HEADERS = \ lib_LTLIBRARIES = libexpat.la libexpat_la_LDFLAGS = \ -no-undefined \ - -version-info @LIBCURRENT@:@LIBREVISION@:@LIBAGE@ \ - -rpath $(libdir) + -version-info @LIBCURRENT@:@LIBREVISION@:@LIBAGE@ libexpat_la_SOURCES = \ loadlibrary.c \ diff --git a/lib/expat.h b/lib/expat.h index 1f608c0..174c3fa 100644 --- a/lib/expat.h +++ b/lib/expat.h @@ -264,7 +264,7 @@ XML_ParserCreate_MM(const XML_Char *encoding, const XML_Char *namespaceSeparator); /* Prepare a parser object to be re-used. This is particularly - valuable when memory allocation overhead is disproportionatly high, + valuable when memory allocation overhead is disproportionately high, such as when a large number of small documnents need to be parsed. All handlers are cleared from the parser, except for the unknownEncodingHandler. The parser's external state is re-initialized @@ -1076,7 +1076,7 @@ XML_GetFeatureList(void); */ #define XML_MAJOR_VERSION 2 #define XML_MINOR_VERSION 2 -#define XML_MICRO_VERSION 5 +#define XML_MICRO_VERSION 6 #ifdef __cplusplus } diff --git a/lib/expat.vcxproj b/lib/expat.vcxproj index 66d646e..69cb233 100644 --- a/lib/expat.vcxproj +++ b/lib/expat.vcxproj @@ -71,7 +71,7 @@ true Level3 EditAndContinue - _DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + _DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Debug\ true .\..\win32\tmp\Debug\expat.pch @@ -113,7 +113,7 @@ MaxSpeed true Level3 - NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Release\ .\..\win32\tmp\Release\expat.pch diff --git a/lib/expat_static.vcxproj b/lib/expat_static.vcxproj index b4265e0..825fc51 100644 --- a/lib/expat_static.vcxproj +++ b/lib/expat_static.vcxproj @@ -71,7 +71,7 @@ MaxSpeed true Level3 - _WINDOWS;NDEBUG;_LIB;%(PreprocessorDefinitions) + _WINDOWS;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Release_static\ .\..\win32\tmp\Release_static\expat_static.pch .\..\win32\tmp\Release_static\ @@ -99,7 +99,7 @@ true Level3 EditAndContinue - _DEBUG;_WINDOWS;_LIB;%(PreprocessorDefinitions) + _DEBUG;_WINDOWS;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Debug_static\ true .\..\win32\tmp\Debug_static\expat_static.pch diff --git a/lib/expatw.vcxproj b/lib/expatw.vcxproj index c708309..de8a0f8 100644 --- a/lib/expatw.vcxproj +++ b/lib/expatw.vcxproj @@ -71,7 +71,7 @@ MaxSpeed true Level3 - NDEBUG;_WINDOWS;_USRDLL;XML_UNICODE_WCHAR_T;%(PreprocessorDefinitions) + NDEBUG;_WINDOWS;_USRDLL;XML_UNICODE_WCHAR_T;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Release-w\ .\..\win32\tmp\Release-w\expatw.pch @@ -111,7 +111,7 @@ true Level3 EditAndContinue - _DEBUG;_WINDOWS;_USRDLL;XML_UNICODE_WCHAR_T;%(PreprocessorDefinitions) + _DEBUG;_WINDOWS;_USRDLL;XML_UNICODE_WCHAR_T;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Debug-w\ true .\..\win32\tmp\Debug-w\expatw.pch diff --git a/lib/expatw_static.vcxproj b/lib/expatw_static.vcxproj index a917b48..d195b1b 100644 --- a/lib/expatw_static.vcxproj +++ b/lib/expatw_static.vcxproj @@ -71,7 +71,7 @@ true Level3 EditAndContinue - _DEBUG;_WINDOWS;_LIB;XML_UNICODE_WCHAR_T;%(PreprocessorDefinitions) + _DEBUG;_WINDOWS;_LIB;XML_UNICODE_WCHAR_T;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Debug-w_static\ true .\..\win32\tmp\Debug-w_static\expatw_static.pch @@ -101,7 +101,7 @@ MaxSpeed true Level3 - _WINDOWS;NDEBUG;_LIB;XML_UNICODE_WCHAR_T;%(PreprocessorDefinitions) + _WINDOWS;NDEBUG;_LIB;XML_UNICODE_WCHAR_T;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Release-w_static\ .\..\win32\tmp\Release-w_static\expatw_static.pch .\..\win32\tmp\Release-w_static\ diff --git a/lib/siphash.h b/lib/siphash.h index 581872d..4d6786d 100644 --- a/lib/siphash.h +++ b/lib/siphash.h @@ -11,6 +11,12 @@ * -------------------------------------------------------------------------- * HISTORY: * + * 2018-07-08 (Anton Maklakov) + * - Add "fall through" markers for GCC's -Wimplicit-fallthrough + * + * 2017-11-03 (Sebastian Pipping) + * - Hide sip_tobin and sip_binof unless SIPHASH_TOBIN macro is defined + * * 2017-07-25 (Vadim Zeitlin) * - Fix use of SIPHASH_MAIN macro * @@ -151,6 +157,8 @@ static struct sipkey *sip_tokey(struct sipkey *key, const void *src) { } /* sip_tokey() */ +#ifdef SIPHASH_TOBIN + #define sip_binof(v) sip_tobin((unsigned char[8]){ 0 }, (v)) static void *sip_tobin(void *dst, uint64_t u64) { @@ -158,6 +166,8 @@ static void *sip_tobin(void *dst, uint64_t u64) { return dst; } /* sip_tobin() */ +#endif /* SIPHASH_TOBIN */ + static void sip_round(struct siphash *H, const int rounds) { int i; @@ -231,12 +241,19 @@ static uint64_t sip24_final(struct siphash *H) { switch (left) { case 7: b |= (uint64_t)H->buf[6] << 48; + /* fall through */ case 6: b |= (uint64_t)H->buf[5] << 40; + /* fall through */ case 5: b |= (uint64_t)H->buf[4] << 32; + /* fall through */ case 4: b |= (uint64_t)H->buf[3] << 24; + /* fall through */ case 3: b |= (uint64_t)H->buf[2] << 16; + /* fall through */ case 2: b |= (uint64_t)H->buf[1] << 8; + /* fall through */ case 1: b |= (uint64_t)H->buf[0] << 0; + /* fall through */ case 0: break; } diff --git a/lib/xmlparse.c b/lib/xmlparse.c index 90a237f..c4f3ffc 100644 --- a/lib/xmlparse.c +++ b/lib/xmlparse.c @@ -1,4 +1,4 @@ -/* 4b74aa710b4ed5ce464b0ce544852cb47bf905c85a49c7bae2749f5885cb966d (2.2.5+) +/* 19ac4776051591216f1874e34ee99b6a43a3784c8bd7d70efeb9258dd22b906a (2.2.6+) __ __ _ ___\ \/ /_ __ __ _| |_ / _ \\ /| '_ \ / _` | __| @@ -161,6 +161,9 @@ typedef char ICHAR; /* Round up n to be a multiple of sz, where sz is a power of 2. */ #define ROUND_UP(n, sz) (((n) + ((sz) - 1)) & ~((sz) - 1)) +/* Do safe (NULL-aware) pointer arithmetic */ +#define EXPAT_SAFE_PTR_DIFF(p, q) (((p) && (q)) ? ((p) - (q)) : 0) + /* Handle the case where memmove() doesn't exist. */ #ifndef HAVE_MEMMOVE #ifdef HAVE_BCOPY @@ -1820,6 +1823,7 @@ XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) parser->m_errorCode = XML_ERROR_NO_MEMORY; return XML_STATUS_ERROR; } + /* fall through */ default: parser->m_parsingStatus.parsing = XML_PARSING; } @@ -1969,6 +1973,7 @@ XML_ParseBuffer(XML_Parser parser, int len, int isFinal) parser->m_errorCode = XML_ERROR_NO_MEMORY; return XML_STATUS_ERROR; } + /* fall through */ default: parser->m_parsingStatus.parsing = XML_PARSING; } @@ -2026,39 +2031,46 @@ XML_GetBuffer(XML_Parser parser, int len) default: ; } - if (len > parser->m_bufferLim - parser->m_bufferEnd) { + if (len > EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd)) { #ifdef XML_CONTEXT_BYTES int keep; #endif /* defined XML_CONTEXT_BYTES */ /* Do not invoke signed arithmetic overflow: */ - int neededSize = (int) ((unsigned)len + (unsigned)(parser->m_bufferEnd - parser->m_bufferPtr)); + int neededSize = (int) ((unsigned)len + + (unsigned)EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, + parser->m_bufferPtr)); if (neededSize < 0) { parser->m_errorCode = XML_ERROR_NO_MEMORY; return NULL; } #ifdef XML_CONTEXT_BYTES - keep = (int)(parser->m_bufferPtr - parser->m_buffer); + keep = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer); if (keep > XML_CONTEXT_BYTES) keep = XML_CONTEXT_BYTES; neededSize += keep; #endif /* defined XML_CONTEXT_BYTES */ - if (neededSize <= parser->m_bufferLim - parser->m_buffer) { + if (neededSize <= EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_buffer)) { #ifdef XML_CONTEXT_BYTES - if (keep < parser->m_bufferPtr - parser->m_buffer) { - int offset = (int)(parser->m_bufferPtr - parser->m_buffer) - keep; + if (keep < EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer)) { + int offset = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer) - keep; + /* The buffer pointers cannot be NULL here; we have at least some bytes in the buffer */ memmove(parser->m_buffer, &parser->m_buffer[offset], parser->m_bufferEnd - parser->m_bufferPtr + keep); parser->m_bufferEnd -= offset; parser->m_bufferPtr -= offset; } #else - memmove(parser->m_buffer, parser->m_bufferPtr, parser->m_bufferEnd - parser->m_bufferPtr); - parser->m_bufferEnd = parser->m_buffer + (parser->m_bufferEnd - parser->m_bufferPtr); - parser->m_bufferPtr = parser->m_buffer; + if (parser->m_buffer && parser->m_bufferPtr) { + memmove(parser->m_buffer, parser->m_bufferPtr, + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); + parser->m_bufferEnd = parser->m_buffer + + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); + parser->m_bufferPtr = parser->m_buffer; + } #endif /* not defined XML_CONTEXT_BYTES */ } else { char *newBuf; - int bufferSize = (int)(parser->m_bufferLim - parser->m_bufferPtr); + int bufferSize = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferPtr); if (bufferSize == 0) bufferSize = INIT_BUFFER_SIZE; do { @@ -2077,25 +2089,34 @@ XML_GetBuffer(XML_Parser parser, int len) parser->m_bufferLim = newBuf + bufferSize; #ifdef XML_CONTEXT_BYTES if (parser->m_bufferPtr) { - int keep = (int)(parser->m_bufferPtr - parser->m_buffer); + int keep = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer); if (keep > XML_CONTEXT_BYTES) keep = XML_CONTEXT_BYTES; - memcpy(newBuf, &parser->m_bufferPtr[-keep], parser->m_bufferEnd - parser->m_bufferPtr + keep); + memcpy(newBuf, &parser->m_bufferPtr[-keep], + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr) + keep); FREE(parser, parser->m_buffer); parser->m_buffer = newBuf; - parser->m_bufferEnd = parser->m_buffer + (parser->m_bufferEnd - parser->m_bufferPtr) + keep; + parser->m_bufferEnd = parser->m_buffer + + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr) + keep; parser->m_bufferPtr = parser->m_buffer + keep; } else { - parser->m_bufferEnd = newBuf + (parser->m_bufferEnd - parser->m_bufferPtr); + /* This must be a brand new buffer with no data in it yet */ + parser->m_bufferEnd = newBuf; parser->m_bufferPtr = parser->m_buffer = newBuf; } #else if (parser->m_bufferPtr) { - memcpy(newBuf, parser->m_bufferPtr, parser->m_bufferEnd - parser->m_bufferPtr); + memcpy(newBuf, parser->m_bufferPtr, + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); FREE(parser, parser->m_buffer); + parser->m_bufferEnd = newBuf + + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); + } + else { + /* This must be a brand new buffer with no data in it yet */ + parser->m_bufferEnd = newBuf; } - parser->m_bufferEnd = newBuf + (parser->m_bufferEnd - parser->m_bufferPtr); parser->m_bufferPtr = parser->m_buffer = newBuf; #endif /* not defined XML_CONTEXT_BYTES */ } @@ -2908,9 +2929,11 @@ doContent(XML_Parser parser, poolClear(&parser->m_tempPool); freeBindings(parser, bindings); } - if ((parser->m_tagLevel == 0) && - !((parser->m_parsingStatus.parsing == XML_FINISHED) || (parser->m_parsingStatus.parsing == XML_SUSPENDED))) { - return epilogProcessor(parser, next, end, nextPtr); + if ((parser->m_tagLevel == 0) && (parser->m_parsingStatus.parsing != XML_FINISHED)) { + if (parser->m_parsingStatus.parsing == XML_SUSPENDED) + parser->m_processor = epilogProcessor; + else + return epilogProcessor(parser, next, end, nextPtr); } break; case XML_TOK_END_TAG: @@ -4746,8 +4769,8 @@ doProlog(XML_Parser parser, return XML_ERROR_NO_MEMORY; parser->m_declEntity->publicId = NULL; } - /* fall through */ #endif /* XML_DTD */ + /* fall through */ case XML_ROLE_ENTITY_SYSTEM_ID: if (dtd->keepProcessing && parser->m_declEntity) { parser->m_declEntity->systemId = poolStoreString(&dtd->pool, enc, @@ -6643,7 +6666,6 @@ hash(XML_Parser parser, KEY s) { struct siphash state; struct sipkey key; - (void)sip_tobin; (void)sip24_valid; copy_salt_to_sipkey(parser, &key); sip24_init(&state, &key); diff --git a/lib/xmltok_impl.c b/lib/xmltok_impl.c index 0403dd3..4d9ae7d 100644 --- a/lib/xmltok_impl.c +++ b/lib/xmltok_impl.c @@ -74,6 +74,7 @@ *nextTokPtr = ptr; \ return XML_TOK_INVALID; \ } \ + /* fall through */ \ case BT_NMSTRT: \ case BT_HEX: \ case BT_DIGIT: \ @@ -102,6 +103,7 @@ *nextTokPtr = ptr; \ return XML_TOK_INVALID; \ } \ + /* fall through */ \ case BT_NMSTRT: \ case BT_HEX: \ ptr += MINBPC(enc); \ @@ -602,7 +604,7 @@ PREFIX(scanAtts)(const ENCODING *enc, const char *ptr, const char *end, return XML_TOK_INVALID; } } - /* fall through */ + /* fall through */ case BT_EQUALS: { int open; @@ -1442,6 +1444,7 @@ PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end, case BT_NMSTRT: if (!(BYTE_TO_ASCII(enc, ptr) & ~0x7f)) break; + /* fall through */ default: switch (BYTE_TO_ASCII(enc, ptr)) { case 0x24: /* $ */ @@ -1659,8 +1662,8 @@ PREFIX(nameMatchesAscii)(const ENCODING *UNUSED_P(enc), const char *ptr1, { for (; *ptr2; ptr1 += MINBPC(enc), ptr2++) { if (end1 - ptr1 < MINBPC(enc)) { - /* This line cannot be executed. THe incoming data has already - * been tokenized once, so imcomplete characters like this have + /* This line cannot be executed. The incoming data has already + * been tokenized once, so incomplete characters like this have * already been eliminated from the input. Retaining the * paranoia check is still valuable, however. */ diff --git a/tests/runtests.c b/tests/runtests.c index 463bb38..4f4d268 100644 --- a/tests/runtests.c +++ b/tests/runtests.c @@ -42,11 +42,24 @@ #include #include #include -#include #include /* ptrdiff_t */ #include #include + +#if defined(_WIN32) && defined(_MSC_VER) && (_MSC_VER < 1600) + /* For vs2003/7.1 up to vs2008/9.0; _MSC_VER 1600 is vs2010/10.0 */ + #if defined(_WIN64) + typedef __int64 intptr_t; + #else + typedef __int32 intptr_t; + #endif + typedef unsigned __int64 uint64_t; +#else + #include /* intptr_t uint64_t */ +#endif + + #if ! defined(__cplusplus) # if defined(_MSC_VER) && (_MSC_VER <= 1700) /* for vs2012/11.0/1700 and earlier Visual Studio compilers */ @@ -165,7 +178,7 @@ static void _expect_failure(const char *text, enum XML_Error errorCode, const char *errorMessage, const char *file, int lineno) { - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_OK) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_OK) /* Hackish use of _fail_unless() macro, but let's us report the right filename and line number. */ _fail_unless(0, file, lineno, errorMessage); @@ -397,7 +410,7 @@ external_entity_optioner(XML_Parser parser, if (ext_parser == NULL) return XML_STATUS_ERROR; rc = _XML_Parse_SINGLE_BYTES(ext_parser, options->parse_text, - strlen(options->parse_text), + (int)strlen(options->parse_text), XML_TRUE); XML_ParserFree(ext_parser); return rc; @@ -491,7 +504,6 @@ START_TEST(test_siphash_spec) const uint64_t expected = _SIP_ULL(0xa129ca61U, 0x49be45e5U); struct siphash state; struct sipkey key; - (void)sip_tobin; sip_tokey(&key, "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09" @@ -519,7 +531,7 @@ START_TEST(test_bom_utf8) /* This test is really just making sure we don't core on a UTF-8 BOM. */ const char *text = "\357\273\277"; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -585,7 +597,7 @@ _run_character_check(const char *text, const XML_Char *expected, CharData_Init(&storage); XML_SetUserData(parser, &storage); XML_SetCharacterDataHandler(parser, accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) _xml_failure(parser, file, line); CharData_CheckXMLChars(&storage, expected); } @@ -602,7 +614,7 @@ _run_attribute_check(const char *text, const XML_Char *expected, CharData_Init(&storage); XML_SetUserData(parser, &storage); XML_SetStartElementHandler(parser, accumulate_attribute); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) _xml_failure(parser, file, line); CharData_CheckXMLChars(&storage, expected); } @@ -635,7 +647,7 @@ _run_ext_character_check(const char *text, test_data->storage = &storage; XML_SetUserData(parser, test_data); XML_SetCharacterDataHandler(parser, ext_accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) _xml_failure(parser, file, line); CharData_CheckXMLChars(&storage, expected); @@ -754,7 +766,7 @@ START_TEST(test_illegal_utf8) for (i = 128; i <= 255; ++i) { sprintf(text, "%ccd", i); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_OK) { + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_OK) { sprintf(text, "expected token error for '%c' (ordinal %d) in UTF-8 text", i, i); @@ -1094,7 +1106,7 @@ START_TEST(test_line_number_after_parse) "\n"; XML_Size lineno; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_FALSE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); lineno = XML_GetCurrentLineNumber(parser); if (lineno != 4) { @@ -1112,7 +1124,7 @@ START_TEST(test_column_number_after_parse) const char *text = ""; XML_Size colno; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_FALSE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); colno = XML_GetCurrentColumnNumber(parser); if (colno != 11) { @@ -1178,7 +1190,7 @@ START_TEST(test_line_and_column_numbers_inside_handlers) XML_SetUserData(parser, &storage); XML_SetStartElementHandler(parser, start_element_event_handler2); XML_SetEndElementHandler(parser, end_element_event_handler2); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); StructData_CheckItems(&storage, expected, expected_count); @@ -1194,7 +1206,7 @@ START_TEST(test_line_number_after_error) " \n" " "; /* missing */ XML_Size lineno; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_FALSE) != XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_FALSE) != XML_STATUS_ERROR) fail("Expected a parse error"); lineno = XML_GetCurrentLineNumber(parser); @@ -1214,7 +1226,7 @@ START_TEST(test_column_number_after_error) " \n" " "; /* missing */ XML_Size colno; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_FALSE) != XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_FALSE) != XML_STATUS_ERROR) fail("Expected a parse error"); colno = XML_GetCurrentColumnNumber(parser); @@ -1257,7 +1269,7 @@ START_TEST(test_really_long_lines) "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-+" "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-+" ""; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -1293,7 +1305,7 @@ START_TEST(test_really_long_encoded_lines) "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-+" "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-+" ""; - int parse_len = strlen(text); + int parse_len = (int)strlen(text); /* Need a cdata handler to provoke the code path we want to test */ XML_SetCharacterDataHandler(parser, dummy_cdata_handler); @@ -1336,7 +1348,7 @@ START_TEST(test_end_element_events) CharData_Init(&storage); XML_SetUserData(parser, &storage); XML_SetEndElementHandler(parser, end_element_event_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); } @@ -1450,7 +1462,7 @@ START_TEST(test_attr_whitespace_normalization) XML_SetStartElementHandler(parser, check_attr_contains_normalized_whitespace); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -1519,7 +1531,7 @@ START_TEST(test_unknown_encoding_internal_entity) ""; XML_SetUnknownEncodingHandler(parser, UnknownEncodingHandler, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -1550,7 +1562,7 @@ START_TEST(test_unrecognised_encoding_internal_entity) XML_SetUnknownEncodingHandler(parser, UnrecognisedEncodingHandler, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) != XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Unrecognised encoding not rejected"); } END_TEST @@ -1575,7 +1587,7 @@ external_entity_loader(XML_Parser parser, } if ( _XML_Parse_SINGLE_BYTES(extparser, test_data->parse_text, - strlen(test_data->parse_text), + (int)strlen(test_data->parse_text), XML_TRUE) == XML_STATUS_ERROR) { xml_failure(extparser); @@ -1680,7 +1692,7 @@ external_entity_faulter(XML_Parser parser, } if (_XML_Parse_SINGLE_BYTES(ext_parser, fault->parse_text, - strlen(fault->parse_text), + (int)strlen(fault->parse_text), XML_TRUE) != XML_STATUS_ERROR) fail(fault->fail_text); if (XML_GetErrorCode(ext_parser) != fault->error) @@ -1742,7 +1754,7 @@ START_TEST(test_wfc_undeclared_entity_unread_external_subset) { "\n" "&entity;"; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -2078,12 +2090,12 @@ START_TEST(test_dtd_attr_handling) for (test = attr_data; test->definition != NULL; test++) { XML_SetAttlistDeclHandler(parser, verify_attlist_decl_handler); XML_SetUserData(parser, test); - if (_XML_Parse_SINGLE_BYTES(parser, prolog, strlen(prolog), + if (_XML_Parse_SINGLE_BYTES(parser, prolog, (int)strlen(prolog), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); if (_XML_Parse_SINGLE_BYTES(parser, test->definition, - strlen(test->definition), + (int)strlen(test->definition), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); XML_ParserReset(parser, NULL); @@ -2104,7 +2116,7 @@ START_TEST(test_empty_ns_without_namespaces) " \n" ""; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -2122,7 +2134,7 @@ START_TEST(test_ns_in_attribute_default_without_namespaces) " ]>\n" ""; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -2175,7 +2187,7 @@ START_TEST(test_stop_parser_between_char_data_calls) XML_SetCharacterDataHandler(parser, clearing_aborting_character_handler); resumable = XML_FALSE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) != XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) xml_failure(parser); if (XML_GetErrorCode(parser) != XML_ERROR_ABORTED) xml_failure(parser); @@ -2196,12 +2208,12 @@ START_TEST(test_suspend_parser_between_char_data_calls) XML_SetCharacterDataHandler(parser, clearing_aborting_character_handler); resumable = XML_TRUE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) != XML_STATUS_SUSPENDED) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_SUSPENDED) xml_failure(parser); if (XML_GetErrorCode(parser) != XML_ERROR_NONE) xml_failure(parser); /* Try parsing directly */ - if (XML_Parse(parser, text, strlen(text), XML_TRUE) != XML_STATUS_ERROR) + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Attempt to continue parse while suspended not faulted"); if (XML_GetErrorCode(parser) != XML_ERROR_SUSPENDED) fail("Suspended parse not faulted with correct error"); @@ -2245,7 +2257,7 @@ START_TEST(test_repeated_stop_parser_between_char_data_calls) XML_SetCharacterDataHandler(parser, parser_stop_character_handler); resumable = XML_FALSE; abortable = XML_FALSE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Failed to double-stop parser"); @@ -2253,7 +2265,7 @@ START_TEST(test_repeated_stop_parser_between_char_data_calls) XML_SetCharacterDataHandler(parser, parser_stop_character_handler); resumable = XML_TRUE; abortable = XML_FALSE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_SUSPENDED) fail("Failed to double-suspend parser"); @@ -2261,7 +2273,7 @@ START_TEST(test_repeated_stop_parser_between_char_data_calls) XML_SetCharacterDataHandler(parser, parser_stop_character_handler); resumable = XML_TRUE; abortable = XML_TRUE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Failed to suspend-abort parser"); } @@ -2281,7 +2293,7 @@ START_TEST(test_good_cdata_ascii) XML_SetStartCdataSectionHandler(parser, dummy_start_cdata_handler); XML_SetEndCdataSectionHandler(parser, dummy_end_cdata_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -2292,7 +2304,7 @@ START_TEST(test_good_cdata_ascii) XML_SetCharacterDataHandler(parser, accumulate_characters); XML_SetDefaultHandler(parser, dummy_default_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); } @@ -2317,7 +2329,7 @@ START_TEST(test_good_cdata_utf16) XML_SetUserData(parser, &storage); XML_SetCharacterDataHandler(parser, accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text) - 1, XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text) - 1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); } @@ -2342,7 +2354,7 @@ START_TEST(test_good_cdata_utf16_le) XML_SetUserData(parser, &storage); XML_SetCharacterDataHandler(parser, accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text) - 1, XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text) - 1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); } @@ -2454,7 +2466,7 @@ START_TEST(test_multichar_cdata_utf16) XML_SetUserData(parser, &storage); XML_SetCharacterDataHandler(parser, accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text) - 1, XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text) - 1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); } @@ -2480,7 +2492,7 @@ START_TEST(test_utf16_bad_surrogate_pair) "\xdc\x00\xd8\x00" "\0]\0]\0>\0<\0/\0a\0>"; - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text) - 1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text) - 1, XML_TRUE) != XML_STATUS_ERROR) fail("Reversed UTF-16 surrogate pair not faulted"); if (XML_GetErrorCode(parser) != XML_ERROR_INVALID_TOKEN) @@ -2526,7 +2538,7 @@ START_TEST(test_bad_cdata) size_t i = 0; for (; i < sizeof(cases) / sizeof(struct CaseData); i++) { const enum XML_Status actualStatus = _XML_Parse_SINGLE_BYTES( - parser, cases[i].text, strlen(cases[i].text), XML_TRUE); + parser, cases[i].text, (int)strlen(cases[i].text), XML_TRUE); const enum XML_Error actualError = XML_GetErrorCode(parser); assert(actualStatus == XML_STATUS_ERROR); @@ -2598,12 +2610,12 @@ START_TEST(test_bad_cdata_utf16) enum XML_Status actual_status; enum XML_Error actual_error; - if (_XML_Parse_SINGLE_BYTES(parser, prolog, sizeof(prolog)-1, + if (_XML_Parse_SINGLE_BYTES(parser, prolog, (int)sizeof(prolog)-1, XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); actual_status = _XML_Parse_SINGLE_BYTES(parser, cases[i].text, - cases[i].text_bytes, + (int)cases[i].text_bytes, XML_TRUE); assert(actual_status == XML_STATUS_ERROR); actual_error = XML_GetErrorCode(parser); @@ -2671,7 +2683,7 @@ START_TEST(test_suspend_parser_between_cdata_calls) XML_SetCharacterDataHandler(parser, clearing_aborting_character_handler); resumable = XML_TRUE; - result = _XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE); + result = _XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE); if (result != XML_STATUS_SUSPENDED) { if (result == XML_STATUS_ERROR) xml_failure(parser); @@ -2766,7 +2778,7 @@ START_TEST(test_default_current) XML_SetCharacterDataHandler(parser, record_cdata_handler); CharData_Init(&storage); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, XCS("DCDCDCDCDCDD")); @@ -2777,7 +2789,7 @@ START_TEST(test_default_current) XML_SetCharacterDataHandler(parser, record_cdata_nodefault_handler); CharData_Init(&storage); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, XCS("DcccccD")); @@ -2788,7 +2800,7 @@ START_TEST(test_default_current) XML_SetCharacterDataHandler(parser, record_cdata_handler); CharData_Init(&storage); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, entity_text, strlen(entity_text), + if (_XML_Parse_SINGLE_BYTES(parser, entity_text, (int)strlen(entity_text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); /* The default handler suppresses the entity */ @@ -2801,7 +2813,7 @@ START_TEST(test_default_current) XML_SetSkippedEntityHandler(parser, record_skip_handler); CharData_Init(&storage); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, entity_text, strlen(entity_text), + if (_XML_Parse_SINGLE_BYTES(parser, entity_text, (int)strlen(entity_text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); /* The default handler suppresses the entity */ @@ -2813,7 +2825,7 @@ START_TEST(test_default_current) XML_SetCharacterDataHandler(parser, record_cdata_handler); CharData_Init(&storage); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, entity_text, strlen(entity_text), + if (_XML_Parse_SINGLE_BYTES(parser, entity_text, (int)strlen(entity_text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, XCS("DDDDDDDDDDDDDDDDDCDD")); @@ -2824,7 +2836,7 @@ START_TEST(test_default_current) XML_SetCharacterDataHandler(parser, record_cdata_nodefault_handler); CharData_Init(&storage); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, entity_text, strlen(entity_text), + if (_XML_Parse_SINGLE_BYTES(parser, entity_text, (int)strlen(entity_text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, XCS("DDDDDDDDDDDDDDDDDcD")); @@ -2842,7 +2854,7 @@ START_TEST(test_dtd_elements) "Wombats are go"; XML_SetElementDeclHandler(parser, dummy_element_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -2870,7 +2882,7 @@ START_TEST(test_set_foreign_dtd) XML_SetDefaultHandler(parser, dummy_default_handler); if (XML_UseForeignDTD(parser, XML_TRUE) != XML_ERROR_NONE) fail("Could not set foreign DTD"); - if (_XML_Parse_SINGLE_BYTES(parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(parser, text1, (int)strlen(text1), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); @@ -2885,7 +2897,7 @@ START_TEST(test_set_foreign_dtd) fail("Failed to reject late hash salt change"); /* Now finish the parse */ - if (_XML_Parse_SINGLE_BYTES(parser, text2, strlen(text2), + if (_XML_Parse_SINGLE_BYTES(parser, text2, (int)strlen(text2), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -2960,7 +2972,7 @@ START_TEST(test_foreign_dtd_with_doctype) XML_SetDefaultHandler(parser, dummy_default_handler); if (XML_UseForeignDTD(parser, XML_TRUE) != XML_ERROR_NONE) fail("Could not set foreign DTD"); - if (_XML_Parse_SINGLE_BYTES(parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(parser, text1, (int)strlen(text1), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); @@ -2975,7 +2987,7 @@ START_TEST(test_foreign_dtd_with_doctype) fail("Failed to reject late hash salt change"); /* Now finish the parse */ - if (_XML_Parse_SINGLE_BYTES(parser, text2, strlen(text2), + if (_XML_Parse_SINGLE_BYTES(parser, text2, (int)strlen(text2), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -3002,7 +3014,7 @@ START_TEST(test_foreign_dtd_without_external_subset) XML_SetUserData(parser, NULL); XML_SetExternalEntityRefHandler(parser, external_entity_null_loader); XML_UseForeignDTD(parser, XML_TRUE); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -3140,7 +3152,7 @@ START_TEST(test_attributes) XML_SetStartElementHandler(parser, counting_start_element_handler); XML_SetUserData(parser, info); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -3160,7 +3172,7 @@ START_TEST(test_reset_in_entity) resumable = XML_TRUE; XML_SetCharacterDataHandler(parser, clearing_aborting_character_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_FALSE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); XML_GetParsingStatus(parser, &status); if (status.parsing != XML_SUSPENDED) @@ -3180,7 +3192,7 @@ START_TEST(test_resume_invalid_parse) resumable = XML_TRUE; XML_SetCharacterDataHandler(parser, clearing_aborting_character_handler); - if (XML_Parse(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); if (XML_ResumeParser(parser) == XML_STATUS_OK) fail("Resumed invalid parse not faulted"); @@ -3197,7 +3209,7 @@ START_TEST(test_resume_resuspended) resumable = XML_TRUE; XML_SetCharacterDataHandler(parser, clearing_aborting_character_handler); - if (XML_Parse(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); resumable = XML_TRUE; XML_SetCharacterDataHandler(parser, @@ -3221,7 +3233,7 @@ START_TEST(test_cdata_default) XML_SetUserData(parser, &storage); XML_SetDefaultHandler(parser, accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -3248,7 +3260,7 @@ external_entity_resetter(XML_Parser parser, fail("Parsing status is not INITIALIZED"); return XML_STATUS_ERROR; } - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) { xml_failure(parser); return XML_STATUS_ERROR; @@ -3259,7 +3271,7 @@ external_entity_resetter(XML_Parser parser, return XML_STATUS_ERROR; } /* Check we can't parse here */ - if (XML_Parse(ext_parser, text, strlen(text), + if (XML_Parse(ext_parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Parsing when finished not faulted"); if (XML_GetErrorCode(ext_parser) != XML_ERROR_FINISHED) @@ -3283,7 +3295,7 @@ START_TEST(test_subordinate_reset) XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_resetter); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -3321,7 +3333,7 @@ external_entity_suspender(XML_Parser parser, fail("Could not create external entity parser"); XML_SetElementDeclHandler(ext_parser, entity_suspending_decl_handler); XML_SetUserData(ext_parser, ext_parser); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) { xml_failure(ext_parser); return XML_STATUS_ERROR; @@ -3339,7 +3351,7 @@ START_TEST(test_subordinate_suspend) XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_suspender); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -3375,7 +3387,7 @@ external_entity_suspend_xmldecl(XML_Parser parser, fail("Could not create external entity parser"); XML_SetXmlDeclHandler(ext_parser, entity_suspending_xdecl_handler); XML_SetUserData(ext_parser, ext_parser); - rc = _XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), XML_TRUE); + rc = _XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE); XML_GetParsingStatus(ext_parser, &status); if (resumable) { if (rc == XML_STATUS_ERROR) @@ -3407,7 +3419,7 @@ START_TEST(test_subordinate_xdecl_suspend) XML_SetExternalEntityRefHandler(parser, external_entity_suspend_xmldecl); resumable = XML_TRUE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -3425,7 +3437,7 @@ START_TEST(test_subordinate_xdecl_abort) XML_SetExternalEntityRefHandler(parser, external_entity_suspend_xmldecl); resumable = XML_FALSE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -3442,7 +3454,7 @@ external_entity_suspending_faulter(XML_Parser parser, XML_Parser ext_parser; ExtFaults *fault = (ExtFaults *)XML_GetUserData(parser); void *buffer; - int parse_len = strlen(fault->parse_text); + int parse_len = (int)strlen(fault->parse_text); ext_parser = XML_ExternalEntityParserCreate(parser, context, NULL); if (ext_parser == NULL) @@ -3520,13 +3532,13 @@ START_TEST(test_explicit_encoding) /* Say we are UTF-8 */ if (XML_SetEncoding(parser, XCS("utf-8")) != XML_STATUS_OK) fail("Failed to set explicit encoding"); - if (_XML_Parse_SINGLE_BYTES(parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(parser, text1, (int)strlen(text1), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); /* Try to switch encodings mid-parse */ if (XML_SetEncoding(parser, XCS("us-ascii")) != XML_STATUS_ERROR) fail("Allowed encoding change"); - if (_XML_Parse_SINGLE_BYTES(parser, text2, strlen(text2), + if (_XML_Parse_SINGLE_BYTES(parser, text2, (int)strlen(text2), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); /* Try now the parse is over */ @@ -3558,7 +3570,7 @@ START_TEST(test_trailing_cr) XML_SetCharacterDataHandler(parser, cr_cdata_handler); XML_SetUserData(parser, &found_cr); found_cr = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_OK) fail("Failed to fault unclosed doc"); if (found_cr == 0) @@ -3569,7 +3581,7 @@ START_TEST(test_trailing_cr) XML_SetDefaultHandler(parser, cr_cdata_handler); XML_SetUserData(parser, &found_cr); found_cr = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_OK) fail("Failed to fault unclosed doc"); if (found_cr == 0) @@ -3592,7 +3604,7 @@ external_entity_cr_catcher(XML_Parser parser, if (ext_parser == NULL) fail("Could not create external entity parser"); XML_SetCharacterDataHandler(ext_parser, cr_cdata_handler); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(ext_parser); XML_ParserFree(ext_parser); @@ -3613,7 +3625,7 @@ external_entity_bad_cr_catcher(XML_Parser parser, if (ext_parser == NULL) fail("Could not create external entity parser"); XML_SetCharacterDataHandler(ext_parser, cr_cdata_handler); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_OK) fail("Async entity error not caught"); if (XML_GetErrorCode(ext_parser) != XML_ERROR_ASYNC_ENTITY) @@ -3635,7 +3647,7 @@ START_TEST(test_ext_entity_trailing_cr) XML_SetExternalEntityRefHandler(parser, external_entity_cr_catcher); XML_SetUserData(parser, &found_cr); found_cr = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_OK) xml_failure(parser); if (found_cr == 0) @@ -3647,7 +3659,7 @@ START_TEST(test_ext_entity_trailing_cr) XML_SetExternalEntityRefHandler(parser, external_entity_bad_cr_catcher); XML_SetUserData(parser, &found_cr); found_cr = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_OK) xml_failure(parser); if (found_cr == 0) @@ -3670,7 +3682,7 @@ START_TEST(test_trailing_rsqb) const char *text8 = "]"; const char text16[] = "\xFF\xFE<\000d\000o\000c\000>\000]\000"; int found_rsqb; - int text8_len = strlen(text8); + int text8_len = (int)strlen(text8); XML_SetCharacterDataHandler(parser, rsqb_handler); XML_SetUserData(parser, &found_rsqb); @@ -3686,7 +3698,7 @@ START_TEST(test_trailing_rsqb) XML_SetCharacterDataHandler(parser, rsqb_handler); XML_SetUserData(parser, &found_rsqb); found_rsqb = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text16, sizeof(text16)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text16, (int)sizeof(text16)-1, XML_TRUE) == XML_STATUS_OK) fail("Failed to fault unclosed doc"); if (found_rsqb == 0) @@ -3697,7 +3709,7 @@ START_TEST(test_trailing_rsqb) XML_SetDefaultHandler(parser, rsqb_handler); XML_SetUserData(parser, &found_rsqb); found_rsqb = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text16, sizeof(text16)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text16, (int)sizeof(text16)-1, XML_TRUE) == XML_STATUS_OK) fail("Failed to fault unclosed doc"); if (found_rsqb == 0) @@ -3720,7 +3732,7 @@ external_entity_rsqb_catcher(XML_Parser parser, if (ext_parser == NULL) fail("Could not create external entity parser"); XML_SetCharacterDataHandler(ext_parser, rsqb_handler); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Async entity error not caught"); if (XML_GetErrorCode(ext_parser) != XML_ERROR_ASYNC_ENTITY) @@ -3742,7 +3754,7 @@ START_TEST(test_ext_entity_trailing_rsqb) XML_SetExternalEntityRefHandler(parser, external_entity_rsqb_catcher); XML_SetUserData(parser, &found_rsqb); found_rsqb = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_OK) xml_failure(parser); if (found_rsqb == 0) @@ -3771,7 +3783,7 @@ external_entity_good_cdata_ascii(XML_Parser parser, XML_SetUserData(ext_parser, &storage); XML_SetCharacterDataHandler(ext_parser, accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(ext_parser); CharData_CheckXMLChars(&storage, expected); @@ -3791,7 +3803,7 @@ START_TEST(test_ext_entity_good_cdata) XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_good_cdata_ascii); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_OK) xml_failure(parser); } @@ -3858,7 +3870,7 @@ external_entity_param_checker(XML_Parser parser, if (ext_parser == NULL) fail("Could not create external entity parser"); handler_data = ext_parser; - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) { xml_failure(parser); return XML_STATUS_ERROR; @@ -3890,7 +3902,7 @@ START_TEST(test_user_parameters) XML_UseParserAsHandlerArg(parser); XML_SetUserData(parser, (void *)1); handler_data = parser; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); if (comment_count != 2) @@ -3898,7 +3910,7 @@ START_TEST(test_user_parameters) /* Ensure we can't change policy mid-parse */ if (XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_NEVER)) fail("Changed param entity parsing policy while parsing"); - if (_XML_Parse_SINGLE_BYTES(parser, epilog, strlen(epilog), + if (_XML_Parse_SINGLE_BYTES(parser, epilog, (int)strlen(epilog), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); if (comment_count != 3) @@ -3936,7 +3948,7 @@ external_entity_ref_param_checker(XML_Parser parameter, ext_parser = XML_ExternalEntityParserCreate(parser, context, NULL); if (ext_parser == NULL) fail("Could not create external entity parser"); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(ext_parser); @@ -3959,7 +3971,7 @@ START_TEST(test_ext_entity_ref_parameter) */ XML_SetExternalEntityRefHandlerArg(parser, (void *)text); handler_data = (void *)text; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); @@ -3970,7 +3982,7 @@ START_TEST(test_ext_entity_ref_parameter) external_entity_ref_param_checker); XML_SetExternalEntityRefHandlerArg(parser, NULL); handler_data = (void *)parser; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -3991,7 +4003,7 @@ START_TEST(test_empty_parse) /* Now try with valid text before the empty end */ XML_ParserReset(parser, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); if (XML_Parse(parser, NULL, 0, XML_TRUE) == XML_STATUS_ERROR) @@ -3999,7 +4011,7 @@ START_TEST(test_empty_parse) /* Now try with invalid text before the empty end */ XML_ParserReset(parser, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, partial, strlen(partial), + if (_XML_Parse_SINGLE_BYTES(parser, partial, (int)strlen(partial), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); if (XML_Parse(parser, NULL, 0, XML_TRUE) != XML_STATUS_ERROR) @@ -4069,7 +4081,7 @@ START_TEST(test_get_buffer_1) if (buffer == NULL) fail("1.5K buffer failed"); memcpy(buffer, text, strlen(text)); - if (XML_ParseBuffer(parser, strlen(text), XML_FALSE) == XML_STATUS_ERROR) + if (XML_ParseBuffer(parser, (int)strlen(text), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); if (XML_GetBuffer(parser, INT_MAX) != NULL) fail("INT_MAX buffer not failed"); @@ -4107,7 +4119,7 @@ START_TEST(test_get_buffer_2) if (buffer == NULL) fail("1.5K buffer failed"); memcpy(buffer, text, strlen(text)); - if (XML_ParseBuffer(parser, strlen(text), XML_FALSE) == XML_STATUS_ERROR) + if (XML_ParseBuffer(parser, (int)strlen(text), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); /* Extend it, to catch a different code path */ @@ -4124,7 +4136,7 @@ START_TEST(test_byte_info_at_end) if (XML_GetCurrentByteIndex(parser) != -1 || XML_GetCurrentByteCount(parser) != 0) fail("Byte index/count incorrect at start of parse"); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); /* At end, the count will be zero and the index the end of string */ @@ -4142,7 +4154,7 @@ START_TEST(test_byte_info_at_error) { const char *text = PRE_ERROR_STR POST_ERROR_STR; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_OK) fail("Syntax error not faulted"); if (XML_GetCurrentByteCount(parser) != 0) @@ -4203,12 +4215,12 @@ START_TEST(test_byte_info_at_cdata) if (XML_GetInputContext(parser, &offset, &size) != NULL) fail("Unexpected context at start of parse"); - data.start_element_len = strlen(START_ELEMENT); - data.cdata_len = strlen(CDATA_TEXT); - data.total_string_len = strlen(text); + data.start_element_len = (int)strlen(START_ELEMENT); + data.cdata_len = (int)strlen(CDATA_TEXT); + data.total_string_len = (int)strlen(text); XML_SetCharacterDataHandler(parser, byte_character_handler); XML_SetUserData(parser, &data); - if (XML_Parse(parser, text, strlen(text), XML_TRUE) != XML_STATUS_OK) + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_OK) xml_failure(parser); } END_TEST @@ -4230,7 +4242,7 @@ START_TEST(test_predefined_entities) */ CharData_Init(&storage); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); /* The default handler doesn't translate the entities */ @@ -4275,14 +4287,14 @@ external_entity_param(XML_Parser parser, fail("Could not create external entity parser"); if (!xcstrcmp(systemId, XCS("004-1.ent"))) { - if (_XML_Parse_SINGLE_BYTES(ext_parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text1, (int)strlen(text1), XML_TRUE) != XML_STATUS_ERROR) fail("Inner DTD with invalid tag not rejected"); if (XML_GetErrorCode(ext_parser) != XML_ERROR_EXTERNAL_ENTITY_HANDLING) xml_failure(ext_parser); } else if (!xcstrcmp(systemId, XCS("004-2.ent"))) { - if (_XML_Parse_SINGLE_BYTES(ext_parser, text2, strlen(text2), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text2, (int)strlen(text2), XML_TRUE) != XML_STATUS_ERROR) fail("Invalid tag in external param not rejected"); if (XML_GetErrorCode(ext_parser) != XML_ERROR_SYNTAX) @@ -4343,7 +4355,7 @@ external_entity_load_ignore(XML_Parser parser, ext_parser = XML_ExternalEntityParserCreate(parser, context, NULL); if (ext_parser == NULL) fail("Could not create external entity parser"); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); @@ -4370,7 +4382,7 @@ START_TEST(test_ignore_section) XML_SetElementDeclHandler(parser, dummy_element_decl_handler); XML_SetStartElementHandler(parser, dummy_start_element); XML_SetEndElementHandler(parser, dummy_end_element); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -4394,7 +4406,7 @@ external_entity_load_ignore_utf16(XML_Parser parser, ext_parser = XML_ExternalEntityParserCreate(parser, context, NULL); if (ext_parser == NULL) fail("Could not create external entity parser"); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); @@ -4425,7 +4437,7 @@ START_TEST(test_ignore_section_utf16) XML_SetElementDeclHandler(parser, dummy_element_decl_handler); XML_SetStartElementHandler(parser, dummy_start_element); XML_SetEndElementHandler(parser, dummy_end_element); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -4449,7 +4461,7 @@ external_entity_load_ignore_utf16_be(XML_Parser parser, ext_parser = XML_ExternalEntityParserCreate(parser, context, NULL); if (ext_parser == NULL) fail("Could not create external entity parser"); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); @@ -4480,7 +4492,7 @@ START_TEST(test_ignore_section_utf16_be) XML_SetElementDeclHandler(parser, dummy_element_decl_handler); XML_SetStartElementHandler(parser, dummy_start_element); XML_SetEndElementHandler(parser, dummy_end_element); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -4549,7 +4561,7 @@ external_entity_valuer(XML_Parser parser, if (ext_parser == NULL) fail("Could not create external entity parser"); if (!xcstrcmp(systemId, XCS("004-1.ent"))) { - if (_XML_Parse_SINGLE_BYTES(ext_parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text1, (int)strlen(text1), XML_TRUE) == XML_STATUS_ERROR) xml_failure(ext_parser); } @@ -4560,7 +4572,7 @@ external_entity_valuer(XML_Parser parser, status = _XML_Parse_SINGLE_BYTES(ext_parser, fault->parse_text, - strlen(fault->parse_text), + (int)strlen(fault->parse_text), XML_TRUE); if (fault->error == XML_ERROR_NONE) { if (status == XML_STATUS_ERROR) @@ -4661,7 +4673,7 @@ START_TEST(test_external_entity_values) XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_valuer); XML_SetUserData(parser, &data_004_2[i]); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); XML_ParserReset(parser, NULL); @@ -4692,7 +4704,7 @@ external_entity_not_standalone(XML_Parser parser, if (!xcstrcmp(systemId, XCS("foo"))) { XML_SetNotStandaloneHandler(ext_parser, reject_not_standalone_handler); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text1, (int)strlen(text1), XML_TRUE) != XML_STATUS_ERROR) fail("Expected not standalone rejection"); if (XML_GetErrorCode(ext_parser) != XML_ERROR_NOT_STANDALONE) @@ -4702,7 +4714,7 @@ external_entity_not_standalone(XML_Parser parser, return XML_STATUS_ERROR; } else if (!xcstrcmp(systemId, XCS("bar"))) { - if (_XML_Parse_SINGLE_BYTES(ext_parser, text2, strlen(text2), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text2, (int)strlen(text2), XML_TRUE) == XML_STATUS_ERROR) xml_failure(ext_parser); } @@ -4746,14 +4758,14 @@ external_entity_value_aborter(XML_Parser parser, if (ext_parser == NULL) fail("Could not create external entity parser"); if (!xcstrcmp(systemId, XCS("004-1.ent"))) { - if (_XML_Parse_SINGLE_BYTES(ext_parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text1, (int)strlen(text1), XML_TRUE) == XML_STATUS_ERROR) xml_failure(ext_parser); } if (!xcstrcmp(systemId, XCS("004-2.ent"))) { XML_SetXmlDeclHandler(ext_parser, entity_suspending_xdecl_handler); XML_SetUserData(ext_parser, ext_parser); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text2, strlen(text2), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text2, (int)strlen(text2), XML_TRUE) != XML_STATUS_ERROR) fail("Aborted parse not faulted"); if (XML_GetErrorCode(ext_parser) != XML_ERROR_ABORTED) @@ -4774,7 +4786,7 @@ START_TEST(test_ext_entity_value_abort) XML_SetExternalEntityRefHandler(parser, external_entity_value_aborter); resumable = XML_FALSE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -4849,7 +4861,7 @@ START_TEST(test_dtd_stop_processing) XML_SetEntityDeclHandler(parser, dummy_entity_decl_handler); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); if (dummy_handler_flags != 0) @@ -4868,7 +4880,7 @@ START_TEST(test_public_notation_no_sysid) dummy_handler_flags = 0; XML_SetNotationDeclHandler(parser, dummy_notation_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); if (dummy_handler_flags != DUMMY_NOTATION_DECL_HANDLER_FLAG) @@ -4881,7 +4893,7 @@ record_element_start_handler(void *userData, const XML_Char *name, const XML_Char **UNUSED_P(atts)) { - CharData_AppendXMLChars((CharData *)userData, name, xcstrlen(name)); + CharData_AppendXMLChars((CharData *)userData, name, (int)xcstrlen(name)); } START_TEST(test_nested_groups) @@ -4903,7 +4915,7 @@ START_TEST(test_nested_groups) XML_SetStartElementHandler(parser, record_element_start_handler); XML_SetUserData(parser, &storage); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, XCS("doce")); @@ -4929,7 +4941,7 @@ START_TEST(test_group_choice) XML_SetElementDeclHandler(parser, dummy_element_decl_handler); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); if (dummy_handler_flags != DUMMY_ELEMENT_DECL_HANDLER_FLAG) @@ -4961,7 +4973,7 @@ external_entity_public(XML_Parser parser, } else fail("Unexpected parameters to external entity parser"); - parse_res = _XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + parse_res = _XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE); XML_ParserFree(ext_parser); return parse_res; @@ -4982,7 +4994,7 @@ START_TEST(test_standalone_parameter_entity) XML_SetUserData(parser, dtd_data); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_public); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -5005,7 +5017,7 @@ START_TEST(test_skipped_parameter_entity) XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetSkippedEntityHandler(parser, dummy_skip_handler); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); if (dummy_handler_flags != DUMMY_SKIP_HANDLER_FLAG) @@ -5051,7 +5063,7 @@ external_entity_devaluer(XML_Parser parser, "\n" "%e1;\n"; XML_Parser ext_parser; - int clear_handler = (intptr_t)XML_GetUserData(parser); + intptr_t clear_handler = (intptr_t)XML_GetUserData(parser); if (systemId == NULL || !xcstrcmp(systemId, XCS("bar"))) return XML_STATUS_OK; @@ -5062,7 +5074,7 @@ external_entity_devaluer(XML_Parser parser, fail("Could note create external entity parser"); if (clear_handler) XML_SetExternalEntityRefHandler(ext_parser, NULL); - if (_XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(ext_parser); @@ -5079,7 +5091,7 @@ START_TEST(test_undefined_ext_entity_in_external_dtd) XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_devaluer); XML_SetUserData(parser, (void *)(intptr_t)XML_FALSE); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); @@ -5090,7 +5102,7 @@ START_TEST(test_undefined_ext_entity_in_external_dtd) XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_devaluer); XML_SetUserData(parser, (void *)(intptr_t)XML_TRUE); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -5114,13 +5126,13 @@ START_TEST(test_suspend_xdecl) XML_SetXmlDeclHandler(parser, aborting_xdecl_handler); resumable = XML_TRUE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_SUSPENDED) xml_failure(parser); if (XML_GetErrorCode(parser) != XML_ERROR_NONE) xml_failure(parser); /* Attempt to start a new parse while suspended */ - if (XML_Parse(parser, text, strlen(text), XML_TRUE) != XML_STATUS_ERROR) + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Attempt to parse while suspended not faulted"); if (XML_GetErrorCode(parser) != XML_ERROR_SUSPENDED) fail("Suspended parse not faulted with correct error"); @@ -5151,7 +5163,7 @@ START_TEST(test_abort_epilog) XML_SetDefaultHandler(parser, selective_aborting_default_handler); XML_SetUserData(parser, match); resumable = XML_FALSE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Abort not triggered"); if (XML_GetErrorCode(parser) != XML_ERROR_ABORTED) @@ -5181,12 +5193,40 @@ START_TEST(test_suspend_epilog) XML_SetDefaultHandler(parser, selective_aborting_default_handler); XML_SetUserData(parser, match); resumable = XML_TRUE; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_SUSPENDED) xml_failure(parser); } END_TEST +static void XMLCALL +suspending_end_handler(void *userData, + const XML_Char *UNUSED_P(s)) +{ + XML_StopParser((XML_Parser)userData, 1); +} + +START_TEST(test_suspend_in_sole_empty_tag) +{ + const char *text = ""; + enum XML_Status rc; + + XML_SetEndElementHandler(parser, suspending_end_handler); + XML_SetUserData(parser, parser); + rc = _XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), + XML_TRUE); + if (rc == XML_STATUS_ERROR) + xml_failure(parser); + else if (rc != XML_STATUS_SUSPENDED) + fail("Suspend not triggered"); + rc = XML_ResumeParser(parser); + if (rc == XML_STATUS_ERROR) + xml_failure(parser); + else if (rc != XML_STATUS_OK) + fail("Resume failed"); +} +END_TEST + START_TEST(test_unfinished_epilog) { const char *text = "<"; @@ -5201,7 +5241,7 @@ START_TEST(test_partial_char_in_epilog) const char *text = "\xe2\x82"; /* First check that no fault is raised if the parse is not finished */ - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); /* Now check that it is faulted once we finish */ @@ -5234,7 +5274,7 @@ START_TEST(test_hash_collision) "\n"; XML_SetHashSalt(parser, COLLIDING_HASH_SALT); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -5268,7 +5308,7 @@ START_TEST(test_suspend_resume_internal_entity) XML_SetStartElementHandler(parser, start_element_suspender); XML_SetCharacterDataHandler(parser, accumulate_characters); XML_SetUserData(parser, &storage); - if (XML_Parse(parser, text, strlen(text), + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_SUSPENDED) xml_failure(parser); CharData_CheckXMLChars(&storage, XCS("")); @@ -5291,7 +5331,7 @@ START_TEST(test_resume_entity_with_syntax_error) "&foo;\n"; XML_SetStartElementHandler(parser, start_element_suspender); - if (XML_Parse(parser, text, strlen(text), + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_SUSPENDED) xml_failure(parser); if (XML_ResumeParser(parser) != XML_STATUS_ERROR) @@ -5327,7 +5367,7 @@ START_TEST(test_suspend_resume_parameter_entity) XML_SetElementDeclHandler(parser, element_decl_suspender); XML_SetCharacterDataHandler(parser, accumulate_characters); XML_SetUserData(parser, &storage); - if (XML_Parse(parser, text, strlen(text), + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_SUSPENDED) xml_failure(parser); CharData_CheckXMLChars(&storage, XCS("")); @@ -5342,7 +5382,7 @@ START_TEST(test_restart_on_error) { const char *text = "<$doc>"; - if (XML_Parse(parser, text, strlen(text), XML_TRUE) != XML_STATUS_ERROR) + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Invalid tag name not faulted"); if (XML_GetErrorCode(parser) != XML_ERROR_INVALID_TOKEN) xml_failure(parser); @@ -5380,7 +5420,7 @@ START_TEST(test_trailing_cr_in_att_value) { const char *text = ""; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -5402,7 +5442,7 @@ START_TEST(test_standalone_internal_entity) ""; XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -5424,7 +5464,7 @@ START_TEST(test_skipped_external_entity) XML_SetUserData(parser, &test_data); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_loader); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -5453,7 +5493,7 @@ external_entity_oneshot_loader(XML_Parser parser, XML_SetExternalEntityRefHandler(ext_parser, test_data->handler); if ( _XML_Parse_SINGLE_BYTES(ext_parser, test_data->parse_text, - strlen(test_data->parse_text), + (int)strlen(test_data->parse_text), XML_TRUE) == XML_STATUS_ERROR) { xml_failure(ext_parser); } @@ -5477,7 +5517,7 @@ START_TEST(test_skipped_null_loaded_ext_entity) XML_SetUserData(parser, &test_data); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_oneshot_loader); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -5498,7 +5538,7 @@ START_TEST(test_skipped_unloaded_ext_entity) XML_SetUserData(parser, &test_data); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_oneshot_loader); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -5529,7 +5569,7 @@ START_TEST(test_param_entity_with_trailing_cr) entity_name_to_match = XCS(PARAM_ENTITY_NAME); entity_value_to_match = XCS(PARAM_ENTITY_CORE_VALUE) XCS("\n"); entity_match_flag = ENTITY_MATCH_NOT_FOUND; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); if (entity_match_flag == ENTITY_MATCH_FAIL) @@ -5582,7 +5622,7 @@ START_TEST(test_invalid_character_entity_3) /* &entity; */ "\0<\0d\0o\0c\0>\0&\0e\0n\0t\0i\0t\0y\0;\0<\0/\0d\0o\0c\0>"; - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) != XML_STATUS_ERROR) fail("Invalid start of entity name not faulted"); if (XML_GetErrorCode(parser) != XML_ERROR_UNDEFINED_ENTITY) @@ -5614,7 +5654,7 @@ START_TEST(test_pi_handled_in_default) CharData_Init(&storage); XML_SetDefaultHandler(parser, accumulate_characters); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)== XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5632,7 +5672,7 @@ START_TEST(test_comment_handled_in_default) CharData_Init(&storage); XML_SetDefaultHandler(parser, accumulate_characters); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5662,7 +5702,7 @@ START_TEST(test_pi_yml) CharData_Init(&storage); XML_SetProcessingInstructionHandler(parser, accumulate_pi_characters); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5678,7 +5718,7 @@ START_TEST(test_pi_xnl) CharData_Init(&storage); XML_SetProcessingInstructionHandler(parser, accumulate_pi_characters); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5694,7 +5734,7 @@ START_TEST(test_pi_xmm) CharData_Init(&storage); XML_SetProcessingInstructionHandler(parser, accumulate_pi_characters); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5721,7 +5761,7 @@ START_TEST(test_utf16_pi) CharData_Init(&storage); XML_SetProcessingInstructionHandler(parser, accumulate_pi_characters); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5748,7 +5788,7 @@ START_TEST(test_utf16_be_pi) CharData_Init(&storage); XML_SetProcessingInstructionHandler(parser, accumulate_pi_characters); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5778,7 +5818,7 @@ START_TEST(test_utf16_be_comment) CharData_Init(&storage); XML_SetCommentHandler(parser, accumulate_comment); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5798,7 +5838,7 @@ START_TEST(test_utf16_le_comment) CharData_Init(&storage); XML_SetCommentHandler(parser, accumulate_comment); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5966,7 +6006,7 @@ START_TEST(test_unknown_encoding_long_name_1) XML_SetUnknownEncodingHandler(parser, MiscEncodingHandler, NULL); XML_SetStartElementHandler(parser, record_element_start_handler); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -5990,7 +6030,7 @@ START_TEST(test_unknown_encoding_long_name_2) XML_SetUnknownEncodingHandler(parser, MiscEncodingHandler, NULL); XML_SetStartElementHandler(parser, record_element_start_handler); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6184,7 +6224,7 @@ START_TEST(test_ext_entity_latin1_utf16le_bom) XML_SetExternalEntityRefHandler(parser, external_entity_loader2); XML_SetUserData(parser, &test_data); XML_SetCharacterDataHandler(parser, ext2_accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6223,7 +6263,7 @@ START_TEST(test_ext_entity_latin1_utf16be_bom) XML_SetExternalEntityRefHandler(parser, external_entity_loader2); XML_SetUserData(parser, &test_data); XML_SetCharacterDataHandler(parser, ext2_accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6267,7 +6307,7 @@ START_TEST(test_ext_entity_latin1_utf16le_bom2) XML_SetExternalEntityRefHandler(parser, external_entity_loader2); XML_SetUserData(parser, &test_data); XML_SetCharacterDataHandler(parser, ext2_accumulate_characters); - if (XML_Parse(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); } @@ -6305,7 +6345,7 @@ START_TEST(test_ext_entity_latin1_utf16be_bom2) XML_SetExternalEntityRefHandler(parser, external_entity_loader2); XML_SetUserData(parser, &test_data); XML_SetCharacterDataHandler(parser, ext2_accumulate_characters); - if (XML_Parse(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); } @@ -6342,7 +6382,7 @@ START_TEST(test_ext_entity_utf16_be) XML_SetExternalEntityRefHandler(parser, external_entity_loader2); XML_SetUserData(parser, &test_data); XML_SetCharacterDataHandler(parser, ext2_accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6380,7 +6420,7 @@ START_TEST(test_ext_entity_utf16_le) XML_SetExternalEntityRefHandler(parser, external_entity_loader2); XML_SetUserData(parser, &test_data); XML_SetCharacterDataHandler(parser, ext2_accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6480,7 +6520,7 @@ START_TEST(test_ext_entity_utf8_non_bom) XML_SetExternalEntityRefHandler(parser, external_entity_loader2); XML_SetUserData(parser, &test_data); XML_SetCharacterDataHandler(parser, ext2_accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6536,7 +6576,7 @@ START_TEST(test_trailing_spaces_in_elements) XML_SetElementHandler(parser, record_element_start_handler, record_element_end_handler); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6557,7 +6597,7 @@ START_TEST(test_utf16_attribute) CharData_Init(&storage); XML_SetStartElementHandler(parser, accumulate_attribute); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6579,7 +6619,7 @@ START_TEST(test_utf16_second_attr) CharData_Init(&storage); XML_SetStartElementHandler(parser, accumulate_attribute); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6646,7 +6686,7 @@ START_TEST(test_utf16_pe) CharData_Init(&storage); XML_SetUserData(parser, &storage); XML_SetEntityDeclHandler(parser, accumulate_entity_decl); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6686,7 +6726,7 @@ START_TEST(test_bad_attr_desc_keyword_utf16) "\0#\x0e\x04\x0e\x08\0>\0\n" "\0]\0>\0<\0d\0/\0>"; - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) != XML_STATUS_ERROR) fail("Invalid UTF16 attribute keyword not faulted"); if (XML_GetErrorCode(parser) != XML_ERROR_SYNTAX) @@ -6721,7 +6761,7 @@ START_TEST(test_bad_doctype_utf16) "\x06\xf2" "\0 \0]\0>\0<\0d\0o\0c\0/\0>"; - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) != XML_STATUS_ERROR) fail("Invalid bytes in DOCTYPE not faulted"); if (XML_GetErrorCode(parser) != XML_ERROR_SYNTAX) @@ -6800,7 +6840,7 @@ START_TEST(test_entity_in_utf16_be_attr) CharData_Init(&storage); XML_SetUserData(parser, &storage); XML_SetStartElementHandler(parser, accumulate_attribute); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6823,7 +6863,7 @@ START_TEST(test_entity_in_utf16_le_attr) CharData_Init(&storage); XML_SetUserData(parser, &storage); XML_SetStartElementHandler(parser, accumulate_attribute); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6861,7 +6901,7 @@ START_TEST(test_entity_public_utf16_be) XML_SetExternalEntityRefHandler(parser, external_entity_loader2); XML_SetUserData(parser, &test_data); XML_SetCharacterDataHandler(parser, ext2_accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -6899,7 +6939,7 @@ START_TEST(test_entity_public_utf16_le) XML_SetExternalEntityRefHandler(parser, external_entity_loader2); XML_SetUserData(parser, &test_data); XML_SetCharacterDataHandler(parser, ext2_accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -7051,7 +7091,7 @@ START_TEST(test_default_doctype_handler) XML_SetUserData(parser, &test_data); XML_SetDefaultHandler(parser, checking_default_handler); XML_SetEntityDeclHandler(parser, dummy_entity_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); for (i = 0; test_data[i].expected != NULL; i++) @@ -7065,7 +7105,7 @@ START_TEST(test_empty_element_abort) const char *text = ""; XML_SetStartElementHandler(parser, start_element_suspender); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Expected to error on abort"); } @@ -7142,7 +7182,7 @@ START_TEST(test_return_ns_triplet) XCS("http://example.org/ a bar") }; XML_SetReturnNSTriplet(parser, XML_TRUE); - XML_SetUserData(parser, elemstr); + XML_SetUserData(parser, (void *)elemstr); XML_SetElementHandler(parser, triplet_start_checker, triplet_end_checker); XML_SetNamespaceDeclHandler(parser, @@ -7151,14 +7191,14 @@ START_TEST(test_return_ns_triplet) triplet_start_flag = XML_FALSE; triplet_end_flag = XML_FALSE; dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); if (!triplet_start_flag) fail("triplet_start_checker not invoked"); /* Check that unsetting "return triplets" fails while still parsing */ XML_SetReturnNSTriplet(parser, XML_FALSE); - if (_XML_Parse_SINGLE_BYTES(parser, epilog, strlen(epilog), + if (_XML_Parse_SINGLE_BYTES(parser, epilog, (int)strlen(epilog), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); if (!triplet_end_flag) @@ -7201,7 +7241,7 @@ run_ns_tagname_overwrite_test(const char *text, const XML_Char *result) XML_SetUserData(parser, &storage); XML_SetElementHandler(parser, overwrite_start_checker, overwrite_end_checker); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, result); } @@ -7279,7 +7319,7 @@ START_TEST(test_start_ns_clears_start_element) XML_SetStartNamespaceDeclHandler(parser, start_ns_clearing_start_element); XML_SetEndNamespaceDeclHandler(parser, dummy_end_namespace_decl_handler); XML_UseParserAsHandlerArg(parser); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -7306,7 +7346,7 @@ external_entity_handler(XML_Parser parser, XML_SetUserData(parser, (void *) callno); p2 = XML_ExternalEntityParserCreate(parser, context, NULL); - if (_XML_Parse_SINGLE_BYTES(p2, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) { + if (_XML_Parse_SINGLE_BYTES(p2, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) { xml_failure(p2); return XML_STATUS_ERROR; } @@ -7330,7 +7370,7 @@ START_TEST(test_default_ns_from_ext_subset_and_ext_ge) /* We actually need to set this handler to tickle this bug. */ XML_SetStartElementHandler(parser, dummy_start_element); XML_SetUserData(parser, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -7397,9 +7437,9 @@ START_TEST(test_ns_prefix_with_empty_uri_4) XCS("http://example.org/ doc prefix") }; XML_SetReturnNSTriplet(parser, XML_TRUE); - XML_SetUserData(parser, elemstr); + XML_SetUserData(parser, (void *)elemstr); XML_SetEndElementHandler(parser, triplet_end_checker); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -7415,7 +7455,7 @@ START_TEST(test_ns_unbound_prefix) "]>\n" ""; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Unbound prefix incorrectly passed"); if (XML_GetErrorCode(parser) != XML_ERROR_UNBOUND_PREFIX) @@ -7434,7 +7474,7 @@ START_TEST(test_ns_default_with_empty_uri) dummy_start_namespace_decl_handler); XML_SetEndNamespaceDeclHandler(parser, dummy_end_namespace_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -7473,7 +7513,7 @@ START_TEST(test_ns_duplicate_hashes) const char *text = ""; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -7536,11 +7576,11 @@ START_TEST(test_ns_long_element) }; XML_SetReturnNSTriplet(parser, XML_TRUE); - XML_SetUserData(parser, elemstr); + XML_SetUserData(parser, (void *)elemstr); XML_SetElementHandler(parser, triplet_start_checker, triplet_end_checker); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -7554,7 +7594,7 @@ START_TEST(test_ns_mixed_prefix_atts) " xmlns:bar='http://example.org/'>" ""; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -7571,7 +7611,7 @@ START_TEST(test_ns_extend_uri_buffer) " " ""; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -7589,7 +7629,7 @@ START_TEST(test_ns_reserved_attributes) expect_failure(text1, XML_ERROR_RESERVED_PREFIX_XMLNS, "xmlns not rejected as an attribute"); XML_ParserReset(parser, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, text2, strlen(text2), + if (_XML_Parse_SINGLE_BYTES(parser, text2, (int)strlen(text2), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -7699,10 +7739,10 @@ START_TEST(test_ns_extremely_long_prefix) "='foo'\n>" ""; - if (_XML_Parse_SINGLE_BYTES(parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(parser, text1, (int)strlen(text1), XML_FALSE) == XML_STATUS_ERROR) xml_failure(parser); - if (_XML_Parse_SINGLE_BYTES(parser, text2, strlen(text2), + if (_XML_Parse_SINGLE_BYTES(parser, text2, (int)strlen(text2), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } @@ -7777,7 +7817,7 @@ START_TEST(test_ns_utf16_leafname) CharData_Init(&storage); XML_SetStartElementHandler(parser, accumulate_attribute); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -7801,7 +7841,7 @@ START_TEST(test_ns_utf16_element_leafname) CharData_Init(&storage); XML_SetStartElementHandler(parser, start_element_event_handler); XML_SetUserData(parser, &storage); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -7833,7 +7873,7 @@ START_TEST(test_ns_utf16_doctype) XML_SetUserData(parser, &storage); XML_SetStartElementHandler(parser, start_element_event_handler); XML_SetUnknownEncodingHandler(parser, MiscEncodingHandler, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -7866,8 +7906,8 @@ END_TEST #define ALLOC_ALWAYS_SUCCEED (-1) #define REALLOC_ALWAYS_SUCCEED (-1) -static int allocation_count = ALLOC_ALWAYS_SUCCEED; -static int reallocation_count = REALLOC_ALWAYS_SUCCEED; +static intptr_t allocation_count = ALLOC_ALWAYS_SUCCEED; +static intptr_t reallocation_count = REALLOC_ALWAYS_SUCCEED; /* Crocked allocator for allocation failure tests */ static void *duff_allocator(size_t size) @@ -8022,7 +8062,7 @@ START_TEST(test_misc_version) fail("Version mismatch"); #if ! defined(XML_UNICODE) || defined(XML_UNICODE_WCHAR_T) - if (xcstrcmp(version_text, XCS("expat_2.2.5"))) /* needs bump on releases */ + if (xcstrcmp(version_text, XCS("expat_2.2.6"))) /* needs bump on releases */ fail("XML_*_VERSION in expat.h out of sync?\n"); #else /* If we have XML_UNICODE defined but not XML_UNICODE_WCHAR_T @@ -8104,7 +8144,7 @@ START_TEST(test_misc_utf16le) CharData_Init(&storage); XML_SetUserData(parser, &storage); XML_SetCharacterDataHandler(parser, accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); CharData_CheckXMLChars(&storage, expected); @@ -8148,7 +8188,7 @@ START_TEST(test_alloc_parse_xdecl) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; XML_SetXmlDeclHandler(parser, dummy_xdecl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* Resetting the parser is insufficient, because some memory @@ -8214,7 +8254,7 @@ START_TEST(test_alloc_parse_xdecl_2) allocation_count = i; XML_SetXmlDeclHandler(parser, dummy_xdecl_handler); XML_SetUnknownEncodingHandler(parser, long_encoding_handler, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8243,7 +8283,7 @@ START_TEST(test_alloc_parse_pi) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; XML_SetProcessingInstructionHandler(parser, dummy_pi_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8271,7 +8311,7 @@ START_TEST(test_alloc_parse_pi_2) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; XML_SetProcessingInstructionHandler(parser, dummy_pi_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8313,7 +8353,7 @@ START_TEST(test_alloc_parse_pi_3) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; XML_SetProcessingInstructionHandler(parser, dummy_pi_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8339,7 +8379,7 @@ START_TEST(test_alloc_parse_comment) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; XML_SetCommentHandler(parser, dummy_comment_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8367,7 +8407,7 @@ START_TEST(test_alloc_parse_comment_2) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; XML_SetCommentHandler(parser, dummy_comment_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8431,7 +8471,7 @@ START_TEST(test_alloc_create_external_parser) XML_SetUserData(parser, foo_text); XML_SetExternalEntityRefHandler(parser, external_entity_duff_loader); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) != XML_STATUS_ERROR) { + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) { fail("External parser allocator returned success incorrectly"); } } @@ -8456,7 +8496,7 @@ START_TEST(test_alloc_run_external_parser) XML_SetExternalEntityRefHandler(parser, external_entity_null_loader); allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) != XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ alloc_teardown(); @@ -8520,7 +8560,7 @@ external_entity_dbl_handler(XML_Parser parser, } allocation_count = ALLOC_ALWAYS_SUCCEED; - if (_XML_Parse_SINGLE_BYTES(new_parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) { + if (_XML_Parse_SINGLE_BYTES(new_parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) { xml_failure(new_parser); return XML_STATUS_ERROR; } @@ -8546,7 +8586,7 @@ START_TEST(test_alloc_dtd_copy_default_atts) XML_SetExternalEntityRefHandler(parser, external_entity_dbl_handler); XML_SetUserData(parser, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); } END_TEST @@ -8575,7 +8615,7 @@ external_entity_dbl_handler_2(XML_Parser parser, NULL); if (new_parser == NULL) return XML_STATUS_ERROR; - rv = _XML_Parse_SINGLE_BYTES(new_parser, text, strlen(text), + rv = _XML_Parse_SINGLE_BYTES(new_parser, text, (int)strlen(text), XML_TRUE); } else { /* Just run through once */ @@ -8584,7 +8624,7 @@ external_entity_dbl_handler_2(XML_Parser parser, new_parser = XML_ExternalEntityParserCreate(parser, context, NULL); if (new_parser == NULL) return XML_STATUS_ERROR; - rv =_XML_Parse_SINGLE_BYTES(new_parser, text, strlen(text), + rv =_XML_Parse_SINGLE_BYTES(new_parser, text, (int)strlen(text), XML_TRUE); } XML_ParserFree(new_parser); @@ -8614,7 +8654,7 @@ START_TEST(test_alloc_external_entity) external_entity_dbl_handler_2); XML_SetUserData(parser, NULL); allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_OK) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8651,7 +8691,7 @@ external_entity_alloc_set_encoding(XML_Parser parser, XML_ParserFree(ext_parser); return XML_STATUS_ERROR; } - status = _XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + status = _XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE); XML_ParserFree(ext_parser); if (status == XML_STATUS_ERROR) @@ -8673,7 +8713,7 @@ START_TEST(test_alloc_ext_entity_set_encoding) XML_SetExternalEntityRefHandler(parser, external_entity_alloc_set_encoding); allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_OK) break; allocation_count = -1; @@ -8723,7 +8763,7 @@ START_TEST(test_alloc_internal_entity) XML_SetUnknownEncodingHandler(parser, unknown_released_encoding_handler, NULL); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), XML_TRUE) != XML_STATUS_ERROR) + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ alloc_teardown(); @@ -8780,7 +8820,7 @@ START_TEST(test_alloc_dtd_default_handling) CharData_Init(&storage); XML_SetUserData(parser, &storage); XML_SetCharacterDataHandler(parser, accumulate_characters); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8859,7 +8899,7 @@ START_TEST(test_alloc_realloc_buffer) if (buffer == NULL) fail("1.5K buffer reallocation failed"); memcpy(buffer, text, strlen(text)); - if (XML_ParseBuffer(parser, strlen(text), + if (XML_ParseBuffer(parser, (int)strlen(text), XML_FALSE) == XML_STATUS_OK) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8896,7 +8936,7 @@ external_entity_reallocator(XML_Parser parser, if (buffer == NULL) fail("Buffer allocation failed"); memcpy(buffer, text, strlen(text)); - status = XML_ParseBuffer(ext_parser, strlen(text), XML_FALSE); + status = XML_ParseBuffer(ext_parser, (int)strlen(text), XML_FALSE); reallocation_count = -1; XML_ParserFree(ext_parser); return (status == XML_STATUS_OK) ? XML_STATUS_OK : XML_STATUS_ERROR; @@ -8916,7 +8956,7 @@ START_TEST(test_alloc_ext_entity_realloc_buffer) XML_SetExternalEntityRefHandler(parser, external_entity_reallocator); XML_SetUserData(parser, (void *)(intptr_t)i); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) == XML_STATUS_OK) break; /* See comment in test_alloc_parse_xdecl() */ @@ -8963,7 +9003,7 @@ START_TEST(test_alloc_realloc_many_attributes) for (i = 0; i < max_realloc_count; i++) { reallocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9017,7 +9057,7 @@ START_TEST(test_alloc_public_entity_value) XML_SetExternalEntityRefHandler(parser, external_entity_public); /* Provoke a particular code path */ XML_SetEntityDeclHandler(parser, dummy_entity_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9083,7 +9123,7 @@ START_TEST(test_alloc_realloc_subst_public_entity_value) XML_SetUserData(parser, dtd_text); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_public); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9130,7 +9170,7 @@ START_TEST(test_alloc_parse_public_doctype) XML_SetDoctypeDeclHandler(parser, dummy_start_doctype_decl_handler, dummy_end_doctype_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9179,7 +9219,7 @@ START_TEST(test_alloc_parse_public_doctype_long_name) XML_SetDoctypeDeclHandler(parser, dummy_start_doctype_decl_handler, dummy_end_doctype_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9207,7 +9247,7 @@ external_entity_alloc(XML_Parser parser, ext_parser = XML_ExternalEntityParserCreate(parser, context, NULL); if (ext_parser == NULL) return XML_STATUS_ERROR; - parse_res = _XML_Parse_SINGLE_BYTES(ext_parser, text, strlen(text), + parse_res = _XML_Parse_SINGLE_BYTES(ext_parser, text, (int)strlen(text), XML_TRUE); XML_ParserFree(ext_parser); return parse_res; @@ -9230,7 +9270,7 @@ START_TEST(test_alloc_set_foreign_dtd) XML_SetExternalEntityRefHandler(parser, external_entity_alloc); if (XML_UseForeignDTD(parser, XML_TRUE) != XML_ERROR_NONE) fail("Could not set foreign DTD"); - if (_XML_Parse_SINGLE_BYTES(parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(parser, text1, (int)strlen(text1), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9265,7 +9305,7 @@ START_TEST(test_alloc_attribute_enum_value) XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); /* An attribute list handler provokes a different code path */ XML_SetAttlistDeclHandler(parser, dummy_attlist_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9323,7 +9363,7 @@ START_TEST(test_alloc_realloc_attribute_enum_value) XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); /* An attribute list handler provokes a different code path */ XML_SetAttlistDeclHandler(parser, dummy_attlist_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9374,7 +9414,7 @@ START_TEST(test_alloc_realloc_implied_attribute) for (i = 0; i < max_realloc_count; i++) { reallocation_count = i; XML_SetAttlistDeclHandler(parser, dummy_attlist_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9425,7 +9465,7 @@ START_TEST(test_alloc_realloc_default_attribute) for (i = 0; i < max_realloc_count; i++) { reallocation_count = i; XML_SetAttlistDeclHandler(parser, dummy_attlist_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9491,7 +9531,7 @@ START_TEST(test_alloc_notation) dummy_handler_flags = 0; XML_SetNotationDeclHandler(parser, dummy_notation_decl_handler); XML_SetEntityDeclHandler(parser, dummy_entity_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9542,7 +9582,7 @@ START_TEST(test_alloc_public_notation) allocation_count = i; dummy_handler_flags = 0; XML_SetNotationDeclHandler(parser, dummy_notation_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9592,7 +9632,7 @@ START_TEST(test_alloc_system_notation) allocation_count = i; dummy_handler_flags = 0; XML_SetNotationDeclHandler(parser, dummy_notation_decl_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9631,7 +9671,7 @@ START_TEST(test_alloc_nested_groups) XML_SetStartElementHandler(parser, record_element_start_handler); XML_SetUserData(parser, &storage); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9672,7 +9712,7 @@ START_TEST(test_alloc_realloc_nested_groups) XML_SetStartElementHandler(parser, record_element_start_handler); XML_SetUserData(parser, &storage); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9712,7 +9752,7 @@ START_TEST(test_alloc_large_group) allocation_count = i; XML_SetElementDeclHandler(parser, dummy_element_decl_handler); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9752,7 +9792,7 @@ START_TEST(test_alloc_realloc_group_choice) reallocation_count = i; XML_SetElementDeclHandler(parser, dummy_element_decl_handler); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9780,7 +9820,7 @@ START_TEST(test_alloc_pi_in_epilog) allocation_count = i; XML_SetProcessingInstructionHandler(parser, dummy_pi_handler); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9808,7 +9848,7 @@ START_TEST(test_alloc_comment_in_epilog) allocation_count = i; XML_SetCommentHandler(parser, dummy_comment_handler); dummy_handler_flags = 0; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9852,7 +9892,7 @@ START_TEST(test_alloc_realloc_long_attribute_value) for (i = 0; i < max_realloc_count; i++) { reallocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9874,7 +9914,7 @@ START_TEST(test_alloc_attribute_whitespace) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9896,7 +9936,7 @@ START_TEST(test_alloc_attribute_predefined_entity) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9942,7 +9982,7 @@ START_TEST(test_alloc_long_attr_default_with_char_ref) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -9987,7 +10027,7 @@ START_TEST(test_alloc_long_attr_value) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -10082,7 +10122,7 @@ START_TEST(test_alloc_realloc_param_entity_newline) XML_SetUserData(parser, dtd_text); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_alloc); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -10130,7 +10170,7 @@ START_TEST(test_alloc_realloc_ce_extends_pe) XML_SetUserData(parser, dtd_text); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_alloc); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -10166,7 +10206,7 @@ START_TEST(test_alloc_realloc_attributes) for (i = 0; i < max_realloc_count; i++) { reallocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -10207,7 +10247,7 @@ START_TEST(test_alloc_long_doc_name) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -10259,7 +10299,7 @@ START_TEST(test_alloc_long_base) XML_ParserReset(parser, NULL); continue; } - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -10307,7 +10347,7 @@ START_TEST(test_alloc_long_public_id) XML_SetUserData(parser, entity_text); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_alloc); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -10356,7 +10396,7 @@ START_TEST(test_alloc_long_entity_value) XML_SetUserData(parser, entity_text); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_alloc); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_alloc_parse_xdecl() */ @@ -10428,7 +10468,7 @@ START_TEST(test_alloc_long_notation) XML_SetUserData(parser, options); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_optioner); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; @@ -10485,7 +10525,7 @@ START_TEST(test_nsalloc_xmlns) allocation_count = i; /* Exercise more code paths with a default handler */ XML_SetDefaultHandler(parser, dummy_default_handler); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* Resetting the parser is insufficient, because some memory @@ -10531,31 +10571,31 @@ START_TEST(test_nsalloc_parse_buffer) /* Get the parser into suspended state */ XML_SetCharacterDataHandler(parser, clearing_aborting_character_handler); resumable = XML_TRUE; - buffer = XML_GetBuffer(parser, strlen(text)); + buffer = XML_GetBuffer(parser, (int)strlen(text)); if (buffer == NULL) fail("Could not acquire parse buffer"); memcpy(buffer, text, strlen(text)); - if (XML_ParseBuffer(parser, strlen(text), + if (XML_ParseBuffer(parser, (int)strlen(text), XML_TRUE) != XML_STATUS_SUSPENDED) xml_failure(parser); if (XML_GetErrorCode(parser) != XML_ERROR_NONE) xml_failure(parser); - if (XML_ParseBuffer(parser, strlen(text), XML_TRUE) != XML_STATUS_ERROR) + if (XML_ParseBuffer(parser, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Suspended XML_ParseBuffer not faulted"); if (XML_GetErrorCode(parser) != XML_ERROR_SUSPENDED) xml_failure(parser); - if (XML_GetBuffer(parser, strlen(text)) != NULL) + if (XML_GetBuffer(parser, (int)strlen(text)) != NULL) fail("Suspended XML_GetBuffer not faulted"); /* Get it going again and complete the world */ XML_SetCharacterDataHandler(parser, NULL); if (XML_ResumeParser(parser) != XML_STATUS_OK) xml_failure(parser); - if (XML_ParseBuffer(parser, strlen(text), XML_TRUE) != XML_STATUS_ERROR) + if (XML_ParseBuffer(parser, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) fail("Post-finishing XML_ParseBuffer not faulted"); if (XML_GetErrorCode(parser) != XML_ERROR_FINISHED) xml_failure(parser); - if (XML_GetBuffer(parser, strlen(text)) != NULL) + if (XML_GetBuffer(parser, (int)strlen(text)) != NULL) fail("Post-finishing XML_GetBuffer not faulted"); } END_TEST @@ -10623,7 +10663,7 @@ START_TEST(test_nsalloc_long_prefix) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -10684,7 +10724,7 @@ START_TEST(test_nsalloc_long_uri) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -10728,7 +10768,7 @@ START_TEST(test_nsalloc_long_attr) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -10811,11 +10851,11 @@ START_TEST(test_nsalloc_long_attr_prefix) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; XML_SetReturnNSTriplet(parser, XML_TRUE); - XML_SetUserData(parser, elemstr); + XML_SetUserData(parser, (void *)elemstr); XML_SetElementHandler(parser, triplet_start_checker, triplet_end_checker); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -10841,7 +10881,7 @@ START_TEST(test_nsalloc_realloc_attributes) for (i = 0; i < max_realloc_count; i++) { reallocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -10874,11 +10914,11 @@ START_TEST(test_nsalloc_long_element) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; XML_SetReturnNSTriplet(parser, XML_TRUE); - XML_SetUserData(parser, elemstr); + XML_SetUserData(parser, (void *)elemstr); XML_SetElementHandler(parser, triplet_start_checker, triplet_end_checker); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -10916,7 +10956,7 @@ START_TEST(test_nsalloc_realloc_binding_uri) const unsigned max_realloc_count = 10; /* First, do a full parse that will leave bindings around */ - if (_XML_Parse_SINGLE_BYTES(parser, first, strlen(first), + if (_XML_Parse_SINGLE_BYTES(parser, first, (int)strlen(first), XML_TRUE) == XML_STATUS_ERROR) xml_failure(parser); @@ -10924,7 +10964,7 @@ START_TEST(test_nsalloc_realloc_binding_uri) for (i = 0; i < max_realloc_count; i++) { XML_ParserReset(parser, NULL); reallocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, second, strlen(second), + if (_XML_Parse_SINGLE_BYTES(parser, second, (int)strlen(second), XML_TRUE) != XML_STATUS_ERROR) break; } @@ -10998,7 +11038,7 @@ START_TEST(test_nsalloc_realloc_long_prefix) for (i = 0; i < max_realloc_count; i++) { reallocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -11075,7 +11115,7 @@ START_TEST(test_nsalloc_realloc_longer_prefix) for (i = 0; i < max_realloc_count; i++) { reallocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -11187,9 +11227,9 @@ START_TEST(test_nsalloc_long_namespace) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(parser, text1, (int)strlen(text1), XML_FALSE) != XML_STATUS_ERROR && - _XML_Parse_SINGLE_BYTES(parser, text2, strlen(text2), + _XML_Parse_SINGLE_BYTES(parser, text2, (int)strlen(text2), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -11263,7 +11303,7 @@ START_TEST(test_nsalloc_less_long_namespace) for (i = 0; i < max_alloc_count; i++) { allocation_count = i; - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -11318,7 +11358,7 @@ START_TEST(test_nsalloc_long_context) XML_SetUserData(parser, options); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_optioner); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; @@ -11352,7 +11392,7 @@ context_realloc_test(const char *text) XML_SetUserData(parser, options); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_optioner); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -11646,7 +11686,7 @@ START_TEST(test_nsalloc_realloc_long_ge_name) XML_SetUserData(parser, options); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_optioner); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -11754,9 +11794,9 @@ START_TEST(test_nsalloc_realloc_long_context_in_dtd) XML_SetUserData(parser, options); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_optioner); - if (_XML_Parse_SINGLE_BYTES(parser, text1, strlen(text1), + if (_XML_Parse_SINGLE_BYTES(parser, text1, (int)strlen(text1), XML_FALSE) != XML_STATUS_ERROR && - _XML_Parse_SINGLE_BYTES(parser, text2, strlen(text2), + _XML_Parse_SINGLE_BYTES(parser, text2, (int)strlen(text2), XML_TRUE) != XML_STATUS_ERROR) break; /* See comment in test_nsalloc_xmlns() */ @@ -11808,7 +11848,7 @@ START_TEST(test_nsalloc_long_default_in_ext) XML_SetUserData(parser, options); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_optioner); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; @@ -11879,7 +11919,7 @@ START_TEST(test_nsalloc_long_systemid_in_ext) XML_SetUserData(parser, options); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_optioner); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; @@ -11920,7 +11960,7 @@ START_TEST(test_nsalloc_prefixed_element) XML_SetUserData(parser, options); XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); XML_SetExternalEntityRefHandler(parser, external_entity_optioner); - if (_XML_Parse_SINGLE_BYTES(parser, text, strlen(text), + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_ERROR) break; @@ -12082,6 +12122,7 @@ make_suite(void) tcase_add_test(tc_basic, test_abort_epilog); tcase_add_test(tc_basic, test_abort_epilog_2); tcase_add_test(tc_basic, test_suspend_epilog); + tcase_add_test(tc_basic, test_suspend_in_sole_empty_tag); tcase_add_test(tc_basic, test_unfinished_epilog); tcase_add_test(tc_basic, test_partial_char_in_epilog); tcase_add_test(tc_basic, test_hash_collision); diff --git a/tests/structdata.c b/tests/structdata.c index 22cb0eb..2ed36fc 100644 --- a/tests/structdata.c +++ b/tests/structdata.c @@ -60,7 +60,7 @@ static XML_Char * xmlstrdup(const XML_Char *s) { - int byte_count = (xcstrlen(s) + 1) * sizeof(XML_Char); + size_t byte_count = (xcstrlen(s) + 1) * sizeof(XML_Char); XML_Char *dup = malloc(byte_count); assert(dup != NULL); diff --git a/win32/expat.iss b/win32/expat.iss index 6168cf7..20ca746 100644 --- a/win32/expat.iss +++ b/win32/expat.iss @@ -4,7 +4,7 @@ ; This script was contributed by Tim Peters. ; It was designed for Inno Setup 2.0.19 but works with later versions as well. -#define expatVer "2.2.5" +#define expatVer "2.2.6" [Setup] AppName=Expat diff --git a/xmlwf/readfilemap.c b/xmlwf/readfilemap.c index 3cc4f76..4c4780b 100644 --- a/xmlwf/readfilemap.c +++ b/xmlwf/readfilemap.c @@ -43,13 +43,16 @@ /* Function "read": */ #if defined(_MSC_VER) +# include /* https://msdn.microsoft.com/en-us/library/wyssk1bs(v=vs.100).aspx */ # define _EXPAT_read _read # define _EXPAT_read_count_t int +# define _EXPAT_read_req_t unsigned int #else /* POSIX */ /* http://pubs.opengroup.org/onlinepubs/009695399/functions/read.html */ # define _EXPAT_read read # define _EXPAT_read_count_t ssize_t +# define _EXPAT_read_req_t size_t #endif #ifndef S_ISREG @@ -118,7 +121,7 @@ filemap(const tchar *name, close(fd); return 0; } - n = _EXPAT_read(fd, p, nbytes); + n = _EXPAT_read(fd, p, (_EXPAT_read_req_t)nbytes); if (n < 0) { tperror(name); free(p); diff --git a/xmlwf/xmlwf.vcxproj b/xmlwf/xmlwf.vcxproj index ed9c50f..60efd39 100644 --- a/xmlwf/xmlwf.vcxproj +++ b/xmlwf/xmlwf.vcxproj @@ -70,7 +70,7 @@ true Level3 ..\lib;%(AdditionalIncludeDirectories) - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Release-xmlwf\ .\..\win32\tmp\Release-xmlwf\xmlwf.pch @@ -107,7 +107,7 @@ Level3 EditAndContinue ..\lib;%(AdditionalIncludeDirectories) - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) .\..\win32\tmp\Debug-xmlwf\ .\..\win32\tmp\Debug-xmlwf\xmlwf.pch .\..\win32\tmp\Debug-xmlwf\ -- 2.34.1