Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite02fea0

Browse files
committed
Fix incompatibilities with libxml2 >= 2.12.0.
libxml2 changed the required signature of error handler callbacksto make the passed xmlError struct "const". This is causing buildfailures on buildfarm member caiman, and no doubt will start showingup in the field quite soon. Add a version check to adjust thedeclaration of xml_errorHandler() according to LIBXML_VERSION.2.12.x also produces deprecation warnings for contrib/xml2/xpath.c'sassignment to xmlLoadExtDtdDefaultValue. I see no good reason forthat to still be there, seeing that we disabled external DTDs (at alower level) years ago for security reasons. Let's just remove it.Back-patch to all supported branches, since they might all get builtwith newer libxml2 once it gets a bit more popular. (The backbranches produce another deprecation warning about xpath.c's use ofxmlSubstituteEntitiesDefault(). We ought to consider whether toback-patch all or part of commit65c5864 to silence that. It'sless urgent though, since it won't break the buildfarm.)Discussion:https://postgr.es/m/1389505.1706382262@sss.pgh.pa.us
1 parentb899e00 commite02fea0

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

‎contrib/xml2/xpath.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ pgxml_parser_init(PgXmlStrictness strictness)
7575
xmlInitParser();
7676

7777
xmlSubstituteEntitiesDefault(1);
78-
xmlLoadExtDtdDefaultValue=1;
7978

8079
returnxmlerrcxt;
8180
}

‎src/backend/utils/adt/xml.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,16 @@
6666
#ifLIBXML_VERSION >=20704
6767
#defineHAVE_XMLSTRUCTUREDERRORCONTEXT 1
6868
#endif
69+
70+
/*
71+
* libxml2 2.12 decided to insert "const" into the error handler API.
72+
*/
73+
#ifLIBXML_VERSION >=21200
74+
#definePgXmlErrorPtr const xmlError *
75+
#else
76+
#definePgXmlErrorPtr xmlErrorPtr
77+
#endif
78+
6979
#endif/* USE_LIBXML */
7080

7181
#include"access/htup_details.h"
@@ -123,7 +133,7 @@ static xmlParserInputPtr xmlPgEntityLoader(const char *URL, const char *ID,
123133
xmlParserCtxtPtrctxt);
124134
staticvoidxml_errsave(Node*escontext,PgXmlErrorContext*errcxt,
125135
intsqlcode,constchar*msg);
126-
staticvoidxml_errorHandler(void*data,xmlErrorPtrerror);
136+
staticvoidxml_errorHandler(void*data,PgXmlErrorPtrerror);
127137
staticinterrdetail_for_xml_code(intcode);
128138
staticvoidchopStringInfoNewlines(StringInfostr);
129139
staticvoidappendStringInfoLineSeparator(StringInfostr);
@@ -2002,7 +2012,7 @@ xml_errsave(Node *escontext, PgXmlErrorContext *errcxt,
20022012
* Error handler for libxml errors and warnings
20032013
*/
20042014
staticvoid
2005-
xml_errorHandler(void*data,xmlErrorPtrerror)
2015+
xml_errorHandler(void*data,PgXmlErrorPtrerror)
20062016
{
20072017
PgXmlErrorContext*xmlerrcxt= (PgXmlErrorContext*)data;
20082018
xmlParserCtxtPtrctxt= (xmlParserCtxtPtr)error->ctxt;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp