[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#924748: marked as done (unblock: shibboleth-sp/3.0.4+dfsg1-1)



Your message dated Mon, 18 Mar 2019 07:35:00 +0000
with message-id <126f1d09-3992-a3ba-74c6-6fc452b52e4a@thykier.net>
and subject line Re: Bug#924748: unblock: shibboleth-sp/3.0.4+dfsg1-1
has caused the Debian Bug report #924748,
regarding unblock: shibboleth-sp/3.0.4+dfsg1-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
924748: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=924748
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package shibboleth-sp

Dear Release Team,

When upstream fixed #924346 in xmltooling, they also fixed the same
problem (uncaught parser exceptions) in shibboleth-sp to prevent DoS
crashes that haven't been identified yet.  The fixes were published
together in new patch-level upstream releases for the whole Shibboleth
Service Provider stack: xmltooling, opensaml and shibboleth-sp.  Beyond
the DoS prevention, shibboleth-sp 3.0.4 consists of three other bugfixes:
* incorrect C++ code usage pattern invoking undefined behavior via
  boost::bind (https://issues.shibboleth.net/jira/browse/SSPCPP-847,
  already mentioned in unblock request #924577);
* certain web applications provoking unbounded cookie data growth
  (https://issues.shibboleth.net/jira/browse/SSPCPP-851); and
* documented configuration settings being ignored in some contexts
  (https://issues.shibboleth.net/jira/browse/SSPCPP-848).
This last one can be worked around by verbosely expanding the affected
configuration constructs, so it can be considered a minor issue.  But
the other three are major or potentially serious, so I ask for your
permission to to upload 3.0.4+dfsg1-1 to unstable with a future unblock.

Thanks,
Feri.

diff -Nru shibboleth-sp-3.0.3+dfsg1/configure shibboleth-sp-3.0.4+dfsg1/configure
--- shibboleth-sp-3.0.3+dfsg1/configure	2018-12-12 20:16:00.000000000 +0100
+++ shibboleth-sp-3.0.4+dfsg1/configure	2019-03-08 16:15:39.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for shibboleth 3.0.3.
+# Generated by GNU Autoconf 2.69 for shibboleth 3.0.4.
 #
 # Report bugs to <https://issues.shibboleth.net/>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='shibboleth'
 PACKAGE_TARNAME='shibboleth-sp'
-PACKAGE_VERSION='3.0.3'
-PACKAGE_STRING='shibboleth 3.0.3'
+PACKAGE_VERSION='3.0.4'
+PACKAGE_STRING='shibboleth 3.0.4'
 PACKAGE_BUGREPORT='https://issues.shibboleth.net/'
 PACKAGE_URL=''
 
@@ -1522,7 +1522,7 @@
   # 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 shibboleth 3.0.3 to adapt to many kinds of systems.
+\`configure' configures shibboleth 3.0.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1592,7 +1592,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of shibboleth 3.0.3:";;
+     short | recursive ) echo "Configuration of shibboleth 3.0.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1792,7 +1792,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-shibboleth configure 3.0.3
+shibboleth configure 3.0.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2670,7 +2670,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by shibboleth $as_me 3.0.3, which was
+It was created by shibboleth $as_me 3.0.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3535,7 +3535,7 @@
 
 # Define the identity of the package.
  PACKAGE='shibboleth-sp'
- VERSION='3.0.3'
+ VERSION='3.0.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -24198,7 +24198,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by shibboleth $as_me 3.0.3, which was
+This file was extended by shibboleth $as_me 3.0.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -24264,7 +24264,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-shibboleth config.status 3.0.3
+shibboleth config.status 3.0.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -Nru shibboleth-sp-3.0.3+dfsg1/configure.ac shibboleth-sp-3.0.4+dfsg1/configure.ac
--- shibboleth-sp-3.0.3+dfsg1/configure.ac	2018-10-12 20:06:42.000000000 +0200
+++ shibboleth-sp-3.0.4+dfsg1/configure.ac	2019-03-08 16:09:43.000000000 +0100
@@ -1,5 +1,5 @@
 AC_PREREQ([2.50])
-AC_INIT([shibboleth],[3.0.3],[https://issues.shibboleth.net/],[shibboleth-sp])
+AC_INIT([shibboleth],[3.0.4],[https://issues.shibboleth.net/],[shibboleth-sp])
 AC_CONFIG_SRCDIR(shibsp)
 AC_CONFIG_AUX_DIR(build-aux)
 AC_CONFIG_MACRO_DIR(m4)
diff -Nru shibboleth-sp-3.0.3+dfsg1/config_win32.h shibboleth-sp-3.0.4+dfsg1/config_win32.h
--- shibboleth-sp-3.0.3+dfsg1/config_win32.h	2018-10-12 20:06:42.000000000 +0200
+++ shibboleth-sp-3.0.4+dfsg1/config_win32.h	2019-03-08 16:09:43.000000000 +0100
@@ -121,13 +121,13 @@
 #define PACKAGE_NAME "shibboleth"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "shibboleth 3.0.3"
+#define PACKAGE_STRING "shibboleth 3.0.4"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "shibboleth-sp"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "3.0.3"
+#define PACKAGE_VERSION "3.0.4"
 
 /* Define to the necessary symbol if this constant uses a non-standard name on
    your system. */
@@ -140,7 +140,7 @@
 /* #undef TM_IN_SYS_TIME */
 
 /* Version number of package */
-#define VERSION "3.0.3"
+#define VERSION "3.0.4"
 
 /* Define to empty if `const' does not conform to ANSI C. */
 /* #undef const */
diff -Nru shibboleth-sp-3.0.3+dfsg1/debian/changelog shibboleth-sp-3.0.4+dfsg1/debian/changelog
--- shibboleth-sp-3.0.3+dfsg1/debian/changelog	2018-12-21 02:15:22.000000000 +0100
+++ shibboleth-sp-3.0.4+dfsg1/debian/changelog	2019-03-16 20:51:16.000000000 +0100
@@ -1,3 +1,11 @@
+shibboleth-sp (3.0.4+dfsg1-1) unstable; urgency=medium
+
+  * [f284741] New upstream release: 3.0.4
+  * [095e478] Refresh our patches
+  * [129417f] Update Standards-Version to 4.3.0 (no changes required)
+
+ -- Ferenc Wágner <wferi@debian.org>  Sat, 16 Mar 2019 20:51:16 +0100
+
 shibboleth-sp (3.0.3+dfsg1-1) unstable; urgency=medium
 
   * [5ff63ef] New upstream release: 3.0.3
diff -Nru shibboleth-sp-3.0.3+dfsg1/debian/control shibboleth-sp-3.0.4+dfsg1/debian/control
--- shibboleth-sp-3.0.3+dfsg1/debian/control	2018-10-30 20:04:46.000000000 +0100
+++ shibboleth-sp-3.0.4+dfsg1/debian/control	2019-03-16 20:51:06.000000000 +0100
@@ -27,7 +27,7 @@
 Build-Depends-Indep:
  doxygen,
  graphviz,
-Standards-Version: 4.2.1
+Standards-Version: 4.3.0
 Homepage: http://shibboleth.net/
 Vcs-Git: https://salsa.debian.org/shib-team/shibboleth-sp2.git
 Vcs-Browser: https://salsa.debian.org/shib-team/shibboleth-sp2
diff -Nru shibboleth-sp-3.0.3+dfsg1/debian/patches/Use-runstatedir-from-future-Autoconf-2.70.patch shibboleth-sp-3.0.4+dfsg1/debian/patches/Use-runstatedir-from-future-Autoconf-2.70.patch
--- shibboleth-sp-3.0.3+dfsg1/debian/patches/Use-runstatedir-from-future-Autoconf-2.70.patch	2018-12-21 02:12:57.000000000 +0100
+++ shibboleth-sp-3.0.4+dfsg1/debian/patches/Use-runstatedir-from-future-Autoconf-2.70.patch	2019-03-16 20:48:54.000000000 +0100
@@ -37,7 +37,7 @@
  
      # If $DAEMON_USER is set, try to run shibd as that user.  However,
 diff --git a/shibsp/Makefile.am b/shibsp/Makefile.am
-index 2a5b61d..eb0d9e9 100644
+index eb7a70c..5b8a1a1 100644
 --- a/shibsp/Makefile.am
 +++ b/shibsp/Makefile.am
 @@ -281,7 +281,7 @@ libshibsp_lite_la_LIBADD = \
diff -Nru shibboleth-sp-3.0.3+dfsg1/isapi_shib/isapi_shib.rc shibboleth-sp-3.0.4+dfsg1/isapi_shib/isapi_shib.rc
--- shibboleth-sp-3.0.3+dfsg1/isapi_shib/isapi_shib.rc	2018-07-10 03:17:23.000000000 +0200
+++ shibboleth-sp-3.0.4+dfsg1/isapi_shib/isapi_shib.rc	2019-03-08 16:09:43.000000000 +0100
@@ -25,8 +25,8 @@
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION RC_FILE_VERSION ,1
- PRODUCTVERSION RC_PRODUCT_VERSION,1
+ FILEVERSION RC_FILE_VERSION,0
+ PRODUCTVERSION RC_PRODUCT_VERSION,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibboleth.spec shibboleth-sp-3.0.4+dfsg1/shibboleth.spec
--- shibboleth-sp-3.0.3+dfsg1/shibboleth.spec	2018-12-12 20:16:24.000000000 +0100
+++ shibboleth-sp-3.0.4+dfsg1/shibboleth.spec	2019-03-08 16:16:06.000000000 +0100
@@ -1,5 +1,5 @@
 Name:		shibboleth
-Version:	3.0.3
+Version:	3.0.4
 Release:	1
 Summary:	Open source system for attribute-based Web SSO
 Group:		Productivity/Networking/Security
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibsp/Application.cpp shibboleth-sp-3.0.4+dfsg1/shibsp/Application.cpp
--- shibboleth-sp-3.0.3+dfsg1/shibsp/Application.cpp	2018-07-10 03:17:23.000000000 +0200
+++ shibboleth-sp-3.0.4+dfsg1/shibsp/Application.cpp	2019-01-14 20:22:42.000000000 +0100
@@ -109,15 +109,9 @@
 void Application::clearAttributeHeaders(SPRequest& request) const
 {
     if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess)) {
-        for_each(
-            m_unsetHeaders.begin(), m_unsetHeaders.end(),
-            boost::bind(
-                &SPRequest::clearHeader,
-                boost::ref(request),
-                boost::bind(&string::c_str, boost::bind(&pair<string,string>::first, _1)),
-                boost::bind(&string::c_str, boost::bind(&pair<string,string>::second, _1))
-                )
-            );
+        for (vector< pair<string,string> >::const_iterator i = m_unsetHeaders.begin(); i != m_unsetHeaders.end(); ++i) {
+            request.clearHeader(i->first.c_str(), i->second.c_str());
+        }
         return;
     }
 
@@ -148,15 +142,9 @@
 
     // Now holding read lock.
     SharedLock unsetLock(m_lock, false);
-    for_each(
-        m_unsetHeaders.begin(), m_unsetHeaders.end(),
-        boost::bind(
-            &SPRequest::clearHeader,
-            boost::ref(request),
-            boost::bind(&string::c_str, boost::bind(&pair<string,string>::first, _1)),
-            boost::bind(&string::c_str, boost::bind(&pair<string,string>::second, _1))
-            )
-        );
+    for (vector< pair<string,string> >::const_iterator i = m_unsetHeaders.begin(); i != m_unsetHeaders.end(); ++i) {
+        request.clearHeader(i->first.c_str(), i->second.c_str());
+    }
 }
 
 void Application::limitRedirect(const GenericRequest& request, const char* url) const
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibsp/handler/impl/AbstractHandler.cpp shibboleth-sp-3.0.4+dfsg1/shibsp/handler/impl/AbstractHandler.cpp
--- shibboleth-sp-3.0.3+dfsg1/shibsp/handler/impl/AbstractHandler.cpp	2018-08-01 19:56:31.000000000 +0200
+++ shibboleth-sp-3.0.4+dfsg1/shibsp/handler/impl/AbstractHandler.cpp	2019-03-08 16:09:43.000000000 +0100
@@ -646,8 +646,35 @@
             postkey = string(mech.second-3) + ':' + out.string();
         }
 
-        // Set a cookie with key info.
         pair<string,const char*> shib_cookie = getPostCookieNameProps(application, relayState);
+
+        // Purge any cookies in excess of 25.
+        int maxCookies = 25,purgedCookies = 0;
+        string exp;
+
+        // Walk the list of cookies backwards by name.
+        const map<string,string>& cookies = request.getCookies();
+        for (map<string,string>::const_reverse_iterator i = cookies.rbegin(); i != cookies.rend(); ++i) {
+            // Process post data cookies only.
+            if (starts_with(i->first, "_shibpost_")) {
+                if (maxCookies > 0) {
+                    // Keep it, but count it against the limit.
+                    --maxCookies;
+                }
+                else {
+                    // We're over the limit, so everything here and older gets cleaned up.
+                    if (exp.empty())
+                        exp = string(shib_cookie.second) + "; expires=Mon, 01 Jan 2001 00:00:00 GMT";
+                    response.setCookie(i->first.c_str(), exp.c_str());
+                    ++purgedCookies;
+                }
+            }
+        }
+
+        if (purgedCookies > 0)
+            log(SPRequest::SPDebug, string("purged ") + lexical_cast<string>(purgedCookies) + " stale POST preservation cookie(s) from client");
+
+        // Set a cookie with key info.
         postkey += shib_cookie.second;
         response.setCookie(shib_cookie.first.c_str(), postkey.c_str());
     }
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibsp/impl/StorageServiceSessionCache.cpp shibboleth-sp-3.0.4+dfsg1/shibsp/impl/StorageServiceSessionCache.cpp
--- shibboleth-sp-3.0.3+dfsg1/shibsp/impl/StorageServiceSessionCache.cpp	2018-07-10 03:17:23.000000000 +0200
+++ shibboleth-sp-3.0.4+dfsg1/shibsp/impl/StorageServiceSessionCache.cpp	2019-03-08 16:09:43.000000000 +0100
@@ -1402,7 +1402,9 @@
             pcache->m_log.info("purging %d old sessions", stale_keys.size());
 
             // Pass 2: walk through the list of stale entries and remove them from the cache
-            for_each(stale_keys.begin(), stale_keys.end(), boost::bind(&SSCache::dormant, pcache, boost::bind(&string::c_str, _1)));
+            for (vector<string>::const_iterator i = stale_keys.begin(); i != stale_keys.end(); ++i) {
+                pcache->dormant(i->c_str());
+            }
         }
 
         pcache->m_log.debug("cleanup thread completed");
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibsp/impl/XMLApplication.cpp shibboleth-sp-3.0.4+dfsg1/shibsp/impl/XMLApplication.cpp
--- shibboleth-sp-3.0.3+dfsg1/shibsp/impl/XMLApplication.cpp	2018-10-12 19:42:15.000000000 +0200
+++ shibboleth-sp-3.0.4+dfsg1/shibsp/impl/XMLApplication.cpp	2019-03-08 16:09:43.000000000 +0100
@@ -716,6 +716,21 @@
                 if (!hasChildElements) {
                     // Append a session initiator element of the designated type to the root element.
                     DOMElement* sidom = e->getOwnerDocument()->createElementNS(e->getNamespaceURI(), _SessionInitiator);
+
+                    // Copy in any attributes from the <SSO> element so they can be accessed as properties in the SI handler
+                    // but more importantly the MessageEncoders, which are DOM-aware only, not SP property-aware.
+                    // The property-based lookups will walk up the DOM tree but the DOM-only code won't.
+                    for (XMLSize_t p = 0; p < ssopropslen; ++p) {
+                        DOMNode* ssoprop = ssoprops->item(p);
+                        if (ssoprop->getNodeType() == DOMNode::ATTRIBUTE_NODE) {
+                            sidom->setAttributeNS(
+                                ((DOMAttr*)ssoprop)->getNamespaceURI(),
+                                ((DOMAttr*)ssoprop)->getLocalName(),
+                                ((DOMAttr*)ssoprop)->getValue()
+                            );
+                        }
+                    }
+
                     sidom->setAttributeNS(nullptr, _type, inittype.second);
                     e->appendChild(sidom);
                     log.info("adding SessionInitiator of type (%s) to chain (/Login)", initiator->getString("id").second);
@@ -740,7 +755,8 @@
                 if (idprop.first && pathprop.first) {
                     DOMElement* acsdom = e->getOwnerDocument()->createElementNS(samlconstants::SAML20MD_NS, _AssertionConsumerService);
 
-                    // Copy in any attributes from the <SSO> element so they can be accessed as properties in the ACS handler.
+                    // Copy in any attributes from the <SSO> element so they can be accessed as properties in the ACS handler,
+                    // since the handlers aren't attached to the SSO element.
                     for (XMLSize_t p = 0; p < ssopropslen; ++p) {
                         DOMNode* ssoprop = ssoprops->item(p);
                         if (ssoprop->getNodeType() == DOMNode::ATTRIBUTE_NODE) {
@@ -806,6 +822,21 @@
             if (discou && *discou) {
                 // Append a session initiator element of the designated type to the root element.
                 DOMElement* sidom = e->getOwnerDocument()->createElementNS(e->getNamespaceURI(), _SessionInitiator);
+
+                // Copy in any attributes from the <SSO> element so they can be accessed as properties in the SI handler
+                // but more importantly the MessageEncoders, which are DOM-aware only, not SP property-aware.
+                // The property-based lookups will walk up the DOM tree but the DOM-only code won't.
+                for (XMLSize_t p = 0; p < ssopropslen; ++p) {
+                    DOMNode* ssoprop = ssoprops->item(p);
+                    if (ssoprop->getNodeType() == DOMNode::ATTRIBUTE_NODE) {
+                        sidom->setAttributeNS(
+                            ((DOMAttr*)ssoprop)->getNamespaceURI(),
+                            ((DOMAttr*)ssoprop)->getLocalName(),
+                            ((DOMAttr*)ssoprop)->getValue()
+                        );
+                    }
+                }
+
                 sidom->setAttributeNS(nullptr, _type, discop);
                 sidom->setAttributeNS(nullptr, _URL, discou);
                 e->appendChild(sidom);
@@ -862,6 +893,21 @@
                 if (!hasChildElements) {
                     // Append a logout initiator element of the designated type to the root element.
                     DOMElement* lidom = e->getOwnerDocument()->createElementNS(e->getNamespaceURI(), _LogoutInitiator);
+
+                    // Copy in any attributes from the <Logout> element so they can be accessed as properties in the LI handler
+                    // but more importantly the MessageEncoders, which are DOM-aware only, not SP property-aware.
+                    // The property-based lookups will walk up the DOM tree but the DOM-only code won't.
+                    for (XMLSize_t p = 0; p < slopropslen; ++p) {
+                        DOMNode* sloprop = sloprops->item(p);
+                        if (sloprop->getNodeType() == DOMNode::ATTRIBUTE_NODE) {
+                            lidom->setAttributeNS(
+                                ((DOMAttr*)sloprop)->getNamespaceURI(),
+                                ((DOMAttr*)sloprop)->getLocalName(),
+                                ((DOMAttr*)sloprop)->getValue()
+                            );
+                        }
+                    }
+
                     lidom->setAttributeNS(nullptr, _type, inittype.second);
                     e->appendChild(lidom);
                     log.info("adding LogoutInitiator of type (%s) to chain (/Logout)", initiator->getString("id").second);
@@ -1499,14 +1545,20 @@
             whitelist.push_back(string("http://";) + request.getHostname() + ':');
         }
 
-        static bool (*startsWithI)(const char*,const char*) = XMLString::startsWithI;
-        if (!whitelist.empty() && find_if(whitelist.begin(), whitelist.end(),
-                boost::bind(startsWithI, url, boost::bind(&string::c_str, _1))) != whitelist.end()) {
-            return;
-        }
-        else if (!m_redirectWhitelist.empty() && find_if(m_redirectWhitelist.begin(), m_redirectWhitelist.end(),
-                boost::bind(startsWithI, url, boost::bind(&string::c_str, _1))) != m_redirectWhitelist.end()) {
-            return;
+        if (!whitelist.empty()) {
+            for (vector<string>::const_iterator i = whitelist.begin(); i != whitelist.end(); ++i) {
+                if (XMLString::startsWithI(url, i->c_str())) {
+                    return;
+                }
+            }
+        }
+
+        if (!m_redirectWhitelist.empty()) {
+            for (vector<string>::const_iterator i = m_redirectWhitelist.begin(); i != m_redirectWhitelist.end(); ++i) {
+                if (XMLString::startsWithI(url, i->c_str())) {
+                    return;
+                }
+            }
         }
         Category::getInstance(SHIBSP_LOGCAT ".Application").warn("redirectLimit policy enforced, blocked redirect to (%s)", url);
         throw opensaml::SecurityPolicyException("Blocked unacceptable redirect location.");
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibsp/Makefile.am shibboleth-sp-3.0.4+dfsg1/shibsp/Makefile.am
--- shibboleth-sp-3.0.3+dfsg1/shibsp/Makefile.am	2018-10-12 20:09:40.000000000 +0200
+++ shibboleth-sp-3.0.4+dfsg1/shibsp/Makefile.am	2019-03-08 16:09:43.000000000 +0100
@@ -243,7 +243,7 @@
 
 # this is different from the project version
 # http://sources.redhat.com/autobook/autobook/autobook_91.html
-libshibsp_la_LDFLAGS = -version-info 8:3:0
+libshibsp_la_LDFLAGS = -version-info 8:4:0
 libshibsp_la_CXXFLAGS = \
     $(AM_CXXFLAGS) \
     $(BOOST_CPPFLAGS) \
@@ -262,7 +262,7 @@
     $(xerces_LIBS) \
     $(xmlsec_LIBS) \
     $(xmltooling_LIBS)
-libshibsp_lite_la_LDFLAGS = -version-info 8:3:0
+libshibsp_lite_la_LDFLAGS = -version-info 8:4:0
 libshibsp_lite_la_CXXFLAGS = -DSHIBSP_LITE \
     $(AM_CXXFLAGS) \
     $(BOOST_CPPFLAGS) \
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibsp/Makefile.in shibboleth-sp-3.0.4+dfsg1/shibsp/Makefile.in
--- shibboleth-sp-3.0.3+dfsg1/shibsp/Makefile.in	2018-12-12 20:15:59.000000000 +0100
+++ shibboleth-sp-3.0.4+dfsg1/shibsp/Makefile.in	2019-03-08 16:15:39.000000000 +0100
@@ -1053,7 +1053,7 @@
 
 # this is different from the project version
 # http://sources.redhat.com/autobook/autobook/autobook_91.html
-libshibsp_la_LDFLAGS = -version-info 8:3:0
+libshibsp_la_LDFLAGS = -version-info 8:4:0
 libshibsp_la_CXXFLAGS = \
     $(AM_CXXFLAGS) \
     $(BOOST_CPPFLAGS) \
@@ -1074,7 +1074,7 @@
     $(xmlsec_LIBS) \
     $(xmltooling_LIBS)
 
-libshibsp_lite_la_LDFLAGS = -version-info 8:3:0
+libshibsp_lite_la_LDFLAGS = -version-info 8:4:0
 libshibsp_lite_la_CXXFLAGS = -DSHIBSP_LITE \
     $(AM_CXXFLAGS) \
     $(BOOST_CPPFLAGS) \
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibsp/remoting/impl/SocketListener.cpp shibboleth-sp-3.0.4+dfsg1/shibsp/remoting/impl/SocketListener.cpp
--- shibboleth-sp-3.0.3+dfsg1/shibsp/remoting/impl/SocketListener.cpp	2018-12-13 16:31:25.000000000 +0100
+++ shibboleth-sp-3.0.4+dfsg1/shibsp/remoting/impl/SocketListener.cpp	2019-03-08 16:09:43.000000000 +0100
@@ -34,7 +34,9 @@
 #include <stack>
 #include <sstream>
 #include <boost/lexical_cast.hpp>
+#include <xercesc/sax/SAXException.hpp>
 #include <xercesc/util/XMLUniDefs.hpp>
+#include <xercesc/util/OutOfMemoryException.hpp>
 
 #include <xmltooling/util/NDC.h>
 #include <xmltooling/util/XMLHelper.h>
@@ -560,6 +562,24 @@
         // Dispatch the message.
         m_listener->receive(in, sink);
     }
+    catch (const xercesc::DOMException& e) {
+        auto_ptr_char temp(e.getMessage());
+        if (incomingError)
+            log.error("error processing incoming message: %s", temp.get() ? temp.get() : "no message");
+        XMLParserException ex(string("DOM error: ") + (temp.get() ? temp.get() : "no message"));
+        DDF out=DDF("exception").string(ex.toString().c_str());
+        DDFJanitor jout(out);
+        sink << out;
+    }
+    catch (const xercesc::SAXException& e) {
+        auto_ptr_char temp(e.getMessage());
+        if (incomingError)
+            log.error("error processing incoming message: %s", temp.get() ? temp.get() : "no message");
+        XMLParserException ex(string("SAX error: ") + (temp.get() ? temp.get() : "no message"));
+        DDF out=DDF("exception").string(ex.toString().c_str());
+        DDFJanitor jout(out);
+        sink << out;
+    }
     catch (const xercesc::XMLException& e) {
         auto_ptr_char temp(e.getMessage());
         if (incomingError)
@@ -568,6 +588,15 @@
         DDF out=DDF("exception").string(ex.toString().c_str());
         DDFJanitor jout(out);
         sink << out;
+    }
+    catch (const xercesc::OutOfMemoryException& e) {
+        auto_ptr_char temp(e.getMessage());
+        if (incomingError)
+            log.error("error processing incoming message: %s", temp.get() ? temp.get() : "no message");
+        XMLParserException ex(string("Out of memory error: ") + (temp.get() ? temp.get() : "no message"));
+        DDF out=DDF("exception").string(ex.toString().c_str());
+        DDFJanitor jout(out);
+        sink << out;
     }
     catch (const XMLToolingException& e) {
         if (incomingError)
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibsp/shibsp.rc shibboleth-sp-3.0.4+dfsg1/shibsp/shibsp.rc
--- shibboleth-sp-3.0.3+dfsg1/shibsp/shibsp.rc	2018-11-01 15:09:17.000000000 +0100
+++ shibboleth-sp-3.0.4+dfsg1/shibsp/shibsp.rc	2019-03-08 16:09:43.000000000 +0100
@@ -64,7 +64,7 @@
             VALUE "InternalName", "shibsp3_0\0"
 #endif
 #endif
-            VALUE "LegalCopyright", "Copyright © 2018 UCAID\0"
+            VALUE "LegalCopyright", "Copyright 2019 UCAID\0"
             VALUE "LegalTrademarks", "\0"
 #ifdef SHIBSP_LITE
 #ifdef _DEBUG
@@ -80,8 +80,8 @@
 #endif
 #endif
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "Shibboleth 3.0.3\0"
-            VALUE "ProductVersion", "3, 0, 3, 0\0"
+            VALUE "ProductName", "Shibboleth 3.0.4\0"
+            VALUE "ProductVersion", "3, 0, 4, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
diff -Nru shibboleth-sp-3.0.3+dfsg1/shibsp/version.h shibboleth-sp-3.0.4+dfsg1/shibsp/version.h
--- shibboleth-sp-3.0.3+dfsg1/shibsp/version.h	2018-10-12 20:06:42.000000000 +0200
+++ shibboleth-sp-3.0.4+dfsg1/shibsp/version.h	2019-03-08 16:09:43.000000000 +0100
@@ -44,7 +44,7 @@
 
 #define SHIBSP_VERSION_MAJOR 3
 #define SHIBSP_VERSION_MINOR 0
-#define SHIBSP_VERSION_REVISION 3
+#define SHIBSP_VERSION_REVISION 4
 
 /** DO NOT MODIFY BELOW THIS LINE */
 
unblock shibboleth-sp/3.0.4+dfsg1-1

--- End Message ---
--- Begin Message ---
wferi@niif.hu:
> Control: tag -1 - moreinfo
> 
> Jonathan Wiltshire <jmw@debian.org> writes:
> 
>> Please go ahead and remove the moreinfo tag when it is ready to unblock.
> 
> Thanks, uploaded.  Looks like Niels has already unblocked it, but I'm
> removing the moreinfo tag nevertheless.
> 

Unblocked, thanks.
~Niels

--- End Message ---

Reply to: