You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ji...@apache.org on 2017/09/21 20:46:03 UTC
svn commit: r1809226 -
/openoffice/branches/AOO414/main/expat/expat-2.2.3.patch
Author: jim
Date: Thu Sep 21 20:46:03 2017
New Revision: 1809226
URL: http://svn.apache.org/viewvc?rev=1809226&view=rev
Log:
Correct backport of expat fix
Modified:
openoffice/branches/AOO414/main/expat/expat-2.2.3.patch
Modified: openoffice/branches/AOO414/main/expat/expat-2.2.3.patch
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO414/main/expat/expat-2.2.3.patch?rev=1809226&r1=1809225&r2=1809226&view=diff
==============================================================================
--- openoffice/branches/AOO414/main/expat/expat-2.2.3.patch (original)
+++ openoffice/branches/AOO414/main/expat/expat-2.2.3.patch Thu Sep 21 20:46:03 2017
@@ -45,21 +45,23 @@
+CDEFS+=-DHAVE_MEMMOVE -DHAVE_BCOPY
+.ENDIF # "$(OS)"=="MACOSX"
+
-+SLOFILES=$(SLO)$/xmlparse.obj \
-+ $(SLO)$/xmlrole.obj \
-+ $(SLO)$/xmltok.obj
-+
+SECOND_BUILD=UNICODE
+UNICODE_SLOFILES=$(SLO)$/xmlparse.obj
+UNICODECDEFS+=-DXML_UNICODE
+
++.IF "$(OS)"=="WNT"
++ LOADLIBOBJFILE=$(SLO)/loadlibrary.obj
++.ELSE
++ LOADLIBOBJFILE=
++.ENDIF
++
+LIB1ARCHIV=$(LB)$/libascii_$(TARGET)_xmlparse.a
+LIB1TARGET=$(SLB)$/ascii_$(TARGET)_xmlparse.lib
-+LIB1OBJFILES=$(SLO)$/xmlparse.obj
++LIB1OBJFILES=$(SLO)$/xmlparse.obj $(LOADLIBOBJFILE)
+
+LIB2ARCHIV=$(LB)$/lib$(TARGET)_xmlparse.a
+LIB2TARGET=$(SLB)$/$(TARGET)_xmlparse.lib
-+LIB2OBJFILES =$(REAL_UNICODE_SLOFILES)
++LIB2OBJFILES =$(REAL_UNICODE_SLOFILES) $(LOADLIBOBJFILE)
+
+LIB3ARCHIV=$(LB)$/lib$(TARGET)_xmltok.a
+LIB3TARGET=$(SLB)$/$(TARGET)_xmltok.lib
@@ -91,329 +93,3 @@
+.INCLUDE : set_wntx64.mk
+.INCLUDE : target.mk
+.INCLUDE : tg_wntx64.mk
-diff -ur misc/expat-2.2.3/lib/xmlparse.c misc/build/expat-2.2.3/lib/xmlparse.c
---- misc/expat-2.2.3/lib/xmlparse.c 2017-08-02 09:40:48.000000000 -0400
-+++ misc/build/expat-2.2.3/lib/xmlparse.c 2017-08-04 18:33:34.000000000 -0400
-@@ -1,3 +1,145 @@
-+/***************************************************************************
-+ * _ _ ____ _
-+ * Project ___| | | | _ \| |
-+ * / __| | | | |_) | |
-+ * | (__| |_| | _ <| |___
-+ * \___|\___/|_| \_\_____|
-+ *
-+ * Copyright (C) 2016 - 2017, Steve Holme, <st...@hotmail.com>.
-+ *
-+ * All rights reserved.
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
-+ * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
-+ * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Except as contained in this notice, the name of a copyright holder shall
-+ * not be used in advertising or otherwise to promote the sale, use or other
-+ * dealings in this Software without prior written authorization of the
-+ * copyright holder.
-+ *
-+ ***************************************************************************/
-+
-+#if defined(_WIN32)
-+
-+#include <windows.h>
-+#include <tchar.h>
-+
-+
-+HMODULE _Expat_LoadLibrary(LPCTSTR filename);
-+
-+
-+#if !defined(LOAD_WITH_ALTERED_SEARCH_PATH)
-+#define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008
-+#endif
-+
-+#if !defined(LOAD_LIBRARY_SEARCH_SYSTEM32)
-+#define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800
-+#endif
-+
-+/* We use our own typedef here since some headers might lack these */
-+typedef HMODULE (APIENTRY *LOADLIBRARYEX_FN)(LPCTSTR, HANDLE, DWORD);
-+
-+/* See function definitions in winbase.h */
-+#ifdef UNICODE
-+# ifdef _WIN32_WCE
-+# define LOADLIBARYEX L"LoadLibraryExW"
-+# else
-+# define LOADLIBARYEX "LoadLibraryExW"
-+# endif
-+#else
-+# define LOADLIBARYEX "LoadLibraryExA"
-+#endif
-+
-+
-+/*
-+ * _Expat_LoadLibrary()
-+ *
-+ * This is used to dynamically load DLLs using the most secure method available
-+ * for the version of Windows that we are running on.
-+ *
-+ * Parameters:
-+ *
-+ * filename [in] - The filename or full path of the DLL to load. If only the
-+ * filename is passed then the DLL will be loaded from the
-+ * Windows system directory.
-+ *
-+ * Returns the handle of the module on success; otherwise NULL.
-+ */
-+HMODULE _Expat_LoadLibrary(LPCTSTR filename)
-+{
-+ HMODULE hModule = NULL;
-+ LOADLIBRARYEX_FN pLoadLibraryEx = NULL;
-+
-+ /* Get a handle to kernel32 so we can access it's functions at runtime */
-+ HMODULE hKernel32 = GetModuleHandle(TEXT("kernel32"));
-+ if(!hKernel32)
-+ return NULL;
-+
-+ /* Attempt to find LoadLibraryEx() which is only available on Windows 2000
-+ and above */
-+ pLoadLibraryEx = (LOADLIBRARYEX_FN) GetProcAddress(hKernel32, LOADLIBARYEX);
-+
-+ /* Detect if there's already a path in the filename and load the library if
-+ there is. Note: Both back slashes and forward slashes have been supported
-+ since the earlier days of DOS at an API level although they are not
-+ supported by command prompt */
-+ if(_tcspbrk(filename, TEXT("\\/"))) {
-+ /** !checksrc! disable BANNEDFUNC 1 **/
-+ hModule = pLoadLibraryEx ?
-+ pLoadLibraryEx(filename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) :
-+ LoadLibrary(filename);
-+ }
-+ /* Detect if KB2533623 is installed, as LOAD_LIBARY_SEARCH_SYSTEM32 is only
-+ supported on Windows Vista, Windows Server 2008, Windows 7 and Windows
-+ Server 2008 R2 with this patch or natively on Windows 8 and above */
-+ else if(pLoadLibraryEx && GetProcAddress(hKernel32, "AddDllDirectory")) {
-+ /* Load the DLL from the Windows system directory */
-+ hModule = pLoadLibraryEx(filename, NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
-+ }
-+ else {
-+ /* Attempt to get the Windows system path */
-+ UINT systemdirlen = GetSystemDirectory(NULL, 0);
-+ if(systemdirlen) {
-+ /* Allocate space for the full DLL path (Room for the null terminator
-+ is included in systemdirlen) */
-+ size_t filenamelen = _tcslen(filename);
-+ TCHAR *path = malloc(sizeof(TCHAR) * (systemdirlen + 1 + filenamelen));
-+ if(path && GetSystemDirectory(path, systemdirlen)) {
-+ /* Calculate the full DLL path */
-+ _tcscpy(path + _tcslen(path), TEXT("\\"));
-+ _tcscpy(path + _tcslen(path), filename);
-+
-+ /* Load the DLL from the Windows system directory */
-+ /** !checksrc! disable BANNEDFUNC 1 **/
-+ hModule = pLoadLibraryEx ?
-+ pLoadLibraryEx(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) :
-+ LoadLibrary(path);
-+
-+ }
-+ free(path);
-+ }
-+ }
-+
-+ return hModule;
-+}
-+
-+#else /* defined(_WIN32) */
-+
-+/* ISO C requires a translation unit to contain at least one declaration
-+ [-Wempty-translation-unit] */
-+typedef int _TRANSLATION_UNIT_LOAD_LIBRARY_C_NOT_EMTPY;
-+
-+#endif /* defined(_WIN32) */
-+
- /* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
- See the file COPYING for copying permission.
-
-@@ -314,7 +456,7 @@
- int nDefaultAtts;
- int allocDefaultAtts;
- DEFAULT_ATTRIBUTE *defaultAtts;
--} ELEMENT_TYPE;
-+} XMLPARSE_ELEMENT_TYPE;
-
- typedef struct {
- HASH_TABLE generalEntities;
-@@ -414,7 +556,7 @@
- addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
- const XML_Char *uri, BINDING **bindingsPtr);
- static int
--defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata,
-+defineAttribute(XMLPARSE_ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata,
- XML_Bool isId, const XML_Char *dfltValue, XML_Parser parser);
- static enum XML_Error
- storeAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata,
-@@ -426,7 +568,7 @@
- getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start,
- const char *end);
- static int
--setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *);
-+setElementTypePrefix(XML_Parser parser, XMLPARSE_ELEMENT_TYPE *);
- static enum XML_Error
- storeEntityValue(XML_Parser parser, const ENCODING *enc, const char *start,
- const char *end);
-@@ -487,7 +629,7 @@
-
- static int FASTCALL nextScaffoldPart(XML_Parser parser);
- static XML_Content * build_model(XML_Parser parser);
--static ELEMENT_TYPE *
-+static XMLPARSE_ELEMENT_TYPE *
- getElementType(XML_Parser parser, const ENCODING *enc,
- const char *ptr, const char *end);
-
-@@ -585,7 +727,7 @@
- const XML_Char *m_declAttributeType;
- const XML_Char *m_declNotationName;
- const XML_Char *m_declNotationPublicId;
-- ELEMENT_TYPE *m_declElementType;
-+ XMLPARSE_ELEMENT_TYPE *m_declElementType;
- ATTRIBUTE_ID *m_declAttributeId;
- XML_Bool m_declAttributeIsCdata;
- XML_Bool m_declAttributeIsId;
-@@ -843,7 +985,6 @@
- #ifdef _WIN32
-
- typedef BOOLEAN (APIENTRY *RTLGENRANDOM_FUNC)(PVOID, ULONG);
--HMODULE _Expat_LoadLibrary(LPCTSTR filename); /* see loadlibrary.c */
-
- /* Obtain entropy on Windows XP / Windows Server 2003 and later.
- * Hint on RtlGenRandom and the following article from libsodium.
-@@ -1285,7 +1426,7 @@
- XML_AttlistDeclHandler oldAttlistDeclHandler;
- XML_EntityDeclHandler oldEntityDeclHandler;
- XML_XmlDeclHandler oldXmlDeclHandler;
-- ELEMENT_TYPE * oldDeclElementType;
-+ XMLPARSE_ELEMENT_TYPE * oldDeclElementType;
-
- void *oldUserData;
- void *oldHandlerArg;
-@@ -3181,7 +3322,7 @@
- BINDING **bindingsPtr)
- {
- DTD * const dtd = _dtd; /* save one level of indirection */
-- ELEMENT_TYPE *elementType;
-+ XMLPARSE_ELEMENT_TYPE *elementType;
- int nDefaultAtts;
- const XML_Char **appAtts; /* the attribute list for the application */
- int attIndex = 0;
-@@ -3194,13 +3335,13 @@
- const XML_Char *localPart;
-
- /* lookup the element type name */
-- elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str,0);
-+ elementType = (XMLPARSE_ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str,0);
- if (!elementType) {
- const XML_Char *name = poolCopyString(&dtd->pool, tagNamePtr->str);
- if (!name)
- return XML_ERROR_NO_MEMORY;
-- elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name,
-- sizeof(ELEMENT_TYPE));
-+ elementType = (XMLPARSE_ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name,
-+ sizeof(XMLPARSE_ELEMENT_TYPE));
- if (!elementType)
- return XML_ERROR_NO_MEMORY;
- if (ns && !setElementTypePrefix(parser, elementType))
-@@ -5202,7 +5343,7 @@
- quant = XML_CQUANT_PLUS;
- elementContent:
- if (dtd->in_eldecl) {
-- ELEMENT_TYPE *el;
-+ XMLPARSE_ELEMENT_TYPE *el;
- const XML_Char *name;
- int nameLen;
- const char *nxt = (quant == XML_CQUANT_NONE
-@@ -6010,7 +6151,7 @@
-
-
- static int
--defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata,
-+defineAttribute(XMLPARSE_ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata,
- XML_Bool isId, const XML_Char *value, XML_Parser parser)
- {
- DEFAULT_ATTRIBUTE *att;
-@@ -6054,7 +6195,7 @@
- }
-
- static int
--setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType)
-+setElementTypePrefix(XML_Parser parser, XMLPARSE_ELEMENT_TYPE *elementType)
- {
- DTD * const dtd = _dtd; /* save one level of indirection */
- const XML_Char *name;
-@@ -6367,7 +6508,7 @@
- HASH_TABLE_ITER iter;
- hashTableIterInit(&iter, &(p->elementTypes));
- for (;;) {
-- ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter);
-+ XMLPARSE_ELEMENT_TYPE *e = (XMLPARSE_ELEMENT_TYPE *)hashTableIterNext(&iter);
- if (!e)
- break;
- if (e->allocDefaultAtts != 0)
-@@ -6409,7 +6550,7 @@
- HASH_TABLE_ITER iter;
- hashTableIterInit(&iter, &(p->elementTypes));
- for (;;) {
-- ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter);
-+ XMLPARSE_ELEMENT_TYPE *e = (XMLPARSE_ELEMENT_TYPE *)hashTableIterNext(&iter);
- if (!e)
- break;
- if (e->allocDefaultAtts != 0)
-@@ -6493,16 +6634,16 @@
-
- for (;;) {
- int i;
-- ELEMENT_TYPE *newE;
-+ XMLPARSE_ELEMENT_TYPE *newE;
- const XML_Char *name;
-- const ELEMENT_TYPE *oldE = (ELEMENT_TYPE *)hashTableIterNext(&iter);
-+ const XMLPARSE_ELEMENT_TYPE *oldE = (XMLPARSE_ELEMENT_TYPE *)hashTableIterNext(&iter);
- if (!oldE)
- break;
- name = poolCopyString(&(newDtd->pool), oldE->name);
- if (!name)
- return 0;
-- newE = (ELEMENT_TYPE *)lookup(oldParser, &(newDtd->elementTypes), name,
-- sizeof(ELEMENT_TYPE));
-+ newE = (XMLPARSE_ELEMENT_TYPE *)lookup(oldParser, &(newDtd->elementTypes), name,
-+ sizeof(XMLPARSE_ELEMENT_TYPE));
- if (!newE)
- return 0;
- if (oldE->nDefaultAtts) {
-@@ -7166,7 +7307,7 @@
- return ret;
- }
-
--static ELEMENT_TYPE *
-+static XMLPARSE_ELEMENT_TYPE *
- getElementType(XML_Parser parser,
- const ENCODING *enc,
- const char *ptr,
-@@ -7174,11 +7315,11 @@
- {
- DTD * const dtd = _dtd; /* save one level of indirection */
- const XML_Char *name = poolStoreString(&dtd->pool, enc, ptr, end);
-- ELEMENT_TYPE *ret;
-+ XMLPARSE_ELEMENT_TYPE *ret;
-
- if (!name)
- return NULL;
-- ret = (ELEMENT_TYPE *) lookup(parser, &dtd->elementTypes, name, sizeof(ELEMENT_TYPE));
-+ ret = (XMLPARSE_ELEMENT_TYPE *) lookup(parser, &dtd->elementTypes, name, sizeof(XMLPARSE_ELEMENT_TYPE));
- if (!ret)
- return NULL;
- if (ret->name != name)