Hello, While looking for a fix for <http://www.mythtv.org/pipermail/mythtv-users/2013-October/354498.html> I spent some time on libupnp; find attached my private diff 1.6.17 to 1.6.19:
libupnp (1:1.6.19-0.1) unstable; urgency=medium * Non-maintainer upload. * New upstream version (Closes: #740584) - Drop 0001-Security-fix-for-CERT-issue-VU-922681 applied upstream. - Fixed FTBFS on hurd-i386 (Closes: #670964) * debian/control: - Build-Depends: debhelper (>= 9), dh_autoreconf - Priority: optional (Closes: #740582) - Drop Depends/Replaces/Conflicts: for pre-squeeze libupnpX - Standards-Version bumped to 3.9.5: no changes. * debian/libupnp6{-doc}.lintian-overrides: drop. * debian/rules: Use dh_autoreconf to fix failure on double-build. * debian/patches/20_convenience_libraries.diff (Closes: #670562) - libixml.so.2.0.7 and libthreadutil.so.6.0.2 are now assimilated into libupnp.so.6.3.1, as they were only built and used by that library. This requires a rename to libupnp7, as those libraries are now no longer available, which breaks existing packages like vlc. -- Philipp Matthias Hahn <pmh...@debian.org> Wed, 30 Apr 2014 13:28:46 +0200 Please note that the change for Bug #670562 would require the binary packages to be renamed, which then makes lintian complain about the soname not matching the package number. Sincerely Philipp -- Philipp Matthias Hahn <pmh...@debian.org> GPG/PGP: 9A540E39 @ keyrings.debian.org
diff -urN 17/debian/changelog 19/debian/changelog --- 17/debian/changelog 2013-02-01 21:56:14.000000000 +0100 +++ 19/debian/changelog 2014-04-30 16:31:10.000000000 +0200 @@ -1,3 +1,24 @@ +libupnp (1:1.6.19-0.1) unstable; urgency=medium + + * Non-maintainer upload. + * New upstream version (Closes: #740584) + - Drop 0001-Security-fix-for-CERT-issue-VU-922681 applied upstream. + - Fixed FTBFS on hurd-i386 (Closes: #670964) + * debian/control: + - Build-Depends: debhelper (>= 9), dh_autoreconf + - Priority: optional (Closes: #740582) + - Drop Depends/Replaces/Conflicts: for pre-squeeze libupnpX + - Standards-Version bumped to 3.9.5: no changes. + * debian/libupnp6{-doc}.lintian-overrides: drop. + * debian/rules: Use dh_autoreconf to fix failure on double-build. + * debian/patches/20_convenience_libraries.diff (Closes: #670562) + - libixml.so.2.0.7 and libthreadutil.so.6.0.2 are now assimilated into + libupnp.so.6.3.1, as they were only built and used by that library. + This requires a rename to libupnp7, as those libraries are now no + longer available, which breaks existing packages like vlc. + + -- Philipp Matthias Hahn <pmh...@debian.org> Wed, 30 Apr 2014 13:28:46 +0200 + libupnp (1:1.6.17-1.2) unstable; urgency=high * Non-maintainer upload by the Security Team. @@ -139,7 +160,7 @@ libupnp (1.4.3-2) unstable; urgency=low * Make libupnp-dev depend on libupnp2. - + -- Steve McIntyre <93...@debian.org> Sat, 28 Apr 2007 16:58:23 +0100 libupnp (1.4.3-1) unstable; urgency=low @@ -151,7 +172,7 @@ * Thanks to Jeremy Laine for help on this release. * Two kFreeBSD build failures reported should now be fixed. Closes: #416254. Please open more bugs if there are any more failures. - + -- Steve McIntyre <93...@debian.org> Sat, 31 Mar 2007 16:03:29 +0200 libupnp (1.2.1-3) unstable; urgency=low @@ -161,7 +182,7 @@ * Include debug versions of the libraries in the -dev package. Closes: #350115 * Updated Standards-version. - + -- Steve McIntyre <93...@debian.org> Sun, 12 Feb 2006 20:55:35 +0000 libupnp (1.2.1-2) unstable; urgency=low diff -urN 17/debian/control 19/debian/control --- 17/debian/control 2012-05-08 16:58:33.000000000 +0200 +++ 19/debian/control 2014-04-30 16:28:38.000000000 +0200 @@ -1,18 +1,17 @@ Source: libupnp Section: net -Priority: extra +Priority: optional Homepage: http://pupnp.sourceforge.net/ Maintainer: Nick Leverton <n...@leverton.org> -Build-Depends: debhelper (>= 8.9~), - autotools-dev (>= 20100122.1~), autoconf, automake, libtool, doxygen, graphviz -Standards-Version: 3.9.3 +Build-Depends: debhelper (>= 9), + dh-autoreconf, + doxygen, graphviz, +Standards-Version: 3.9.5 Package: libupnp6 Architecture: any Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} -Conflicts: libupnp0, libupnp2, libupnp3, libupnp4 (<< 1.8.0~svn20090313) -Replaces: libupnp0, libupnp2, libupnp3 Pre-Depends: ${misc:Pre-Depends} Description: Portable SDK for UPnP Devices, version 1.6 (shared libraries) The Portable SDK for UPnP Devices (libupnp) provides developers with an @@ -27,7 +26,7 @@ Architecture: any Section: libdevel Depends: libupnp6 (= ${binary:Version}), ${misc:Depends} -Conflicts: libupnp3-dev, libupnp4-dev +Conflicts: libupnp4-dev Suggests: libupnp6-doc Description: Portable SDK for UPnP Devices, version 1.6 (development files) The Portable SDK for UPnP Devices (libupnp) provides developers with an @@ -57,9 +56,8 @@ Package: libupnp6-dbg Architecture: any Section: debug +Priority: extra Depends: libupnp6 (= ${binary:Version}), ${misc:Depends} -Conflicts: libupnp3-dbg, libupnp4-dbg (<< 1.8.0~svn20090313) -Replaces: libupnp3-dbg Description: debugging symbols for libupnp6 The Portable SDK for UPnP Devices (libupnp) provides developers with an API and open source code for building control points, devices, and @@ -77,7 +75,6 @@ Architecture: all Section: doc Depends: ${misc:Depends} -Replaces: libupnp3-dev Description: Documentation for the Portable SDK for UPnP Devices, version 1.6 The Portable SDK for UPnP Devices (libupnp) provides developers with an API and open source code for building control points, devices, and diff -urN 17/debian/libupnp6-doc.lintian-overrides 19/debian/libupnp6-doc.lintian-overrides --- 17/debian/libupnp6-doc.lintian-overrides 2011-10-22 14:58:06.000000000 +0200 +++ 19/debian/libupnp6-doc.lintian-overrides 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -duplicate-files usr/share/doc/libupnp6-doc/html/gena__ctrlpt_8h__incl.map usr/share/doc/libupnp6-doc/html/gena__device_8h__incl.map -duplicate-files usr/share/doc/libupnp6-doc/html/structscanner__t__coll__graph.map usr/share/doc/libupnp6-doc/html/structxml__alias__t__coll__graph.map -duplicate-files usr/share/doc/libupnp6-doc/html/element_8c__incl.map usr/share/doc/libupnp6-doc/html/namedNodeMap_8c__incl.map usr/share/doc/libupnp6-doc/html/node_8c__incl.map -duplicate-files usr/share/doc/libupnp6-doc/html/structFREELISTNODE__coll__graph.map usr/share/doc/libupnp6-doc/html/structLISTNODE__coll__graph.map usr/share/doc/libupnp6-doc/html/structSClientSubscription__coll__graph.map usr/share/doc/libupnp6-doc/html/struct__IXML__NamespaceURI__coll__graph.map usr/share/doc/libupnp6-doc/html/structvirtual__Dir__List__coll__graph.map - diff -urN 17/debian/libupnp6.lintian-overrides 19/debian/libupnp6.lintian-overrides --- 17/debian/libupnp6.lintian-overrides 2011-10-06 03:19:03.000000000 +0200 +++ 19/debian/libupnp6.lintian-overrides 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -conflicts-with-version libupnp4 (<< 1.8.0~svn20090313) diff -urN 17/debian/libupnp6.symbols 19/debian/libupnp6.symbols --- 17/debian/libupnp6.symbols 2012-01-22 04:19:58.000000000 +0100 +++ 19/debian/libupnp6.symbols 2014-04-30 16:29:51.000000000 +0200 @@ -1,174 +1,3 @@ -libixml.so.2 libupnp6 #MINVER# - ixmlAttr_free@Base 1.4.3 - ixmlAttr_init@Base 1.4.3 - ixmlCDATASection_free@Base 1.4.3 - ixmlCDATASection_init@Base 1.4.3 - ixmlCloneDOMString@Base 1.4.3 - ixmlDocument_createAttribute@Base 1.4.3 - ixmlDocument_createAttributeEx@Base 1.4.3 - ixmlDocument_createAttributeNS@Base 1.4.3 - ixmlDocument_createAttributeNSEx@Base 1.4.3 - ixmlDocument_createCDATASection@Base 1.4.3 - ixmlDocument_createCDATASectionEx@Base 1.4.3 - ixmlDocument_createDocument@Base 1.4.3 - ixmlDocument_createDocumentEx@Base 1.4.3 - ixmlDocument_createElement@Base 1.4.3 - ixmlDocument_createElementEx@Base 1.4.3 - ixmlDocument_createElementNS@Base 1.4.3 - ixmlDocument_createElementNSEx@Base 1.4.3 - ixmlDocument_createTextNode@Base 1.4.3 - ixmlDocument_createTextNodeEx@Base 1.4.3 - ixmlDocument_free@Base 1.4.3 - ixmlDocument_getElementById@Base 1.4.3 - ixmlDocument_getElementsByTagName@Base 1.4.3 - ixmlDocument_getElementsByTagNameNS@Base 1.4.3 - ixmlDocument_importNode@Base 1.4.3 - ixmlDocument_init@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlDocument_setOwnerDocument@Base 1.4.3 - ixmlDocumenttoString@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlDomTreetoString@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlElement_findAttributeNode@Base 1.4.3 - ixmlElement_free@Base 1.4.3 - ixmlElement_getAttribute@Base 1.4.3 - ixmlElement_getAttributeNS@Base 1.4.3 - ixmlElement_getAttributeNode@Base 1.4.3 - ixmlElement_getAttributeNodeNS@Base 1.4.3 - ixmlElement_getElementsByTagName@Base 1.4.3 - ixmlElement_getElementsByTagNameNS@Base 1.4.3 - ixmlElement_getTagName@Base 1.4.3 - ixmlElement_hasAttribute@Base 1.4.3 - ixmlElement_hasAttributeNS@Base 1.4.3 - ixmlElement_init@Base 1.4.3 - ixmlElement_removeAttribute@Base 1.4.3 - ixmlElement_removeAttributeNS@Base 1.4.3 - ixmlElement_removeAttributeNode@Base 1.4.3 - ixmlElement_setAttribute@Base 1.4.3 - ixmlElement_setAttributeNS@Base 1.4.3 - ixmlElement_setAttributeNode@Base 1.4.3 - ixmlElement_setAttributeNodeNS@Base 1.4.3 - ixmlElement_setTagName@Base 1.4.3 - ixmlFreeDOMString@Base 1.4.3 - ixmlLoadDocument@Base 1.4.3 - ixmlLoadDocumentEx@Base 1.4.3 - ixmlNamedNodeMap_addToNamedNodeMap@Base 1.4.3 - ixmlNamedNodeMap_free@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNamedNodeMap_getItemNumber@Base 1.4.3 - ixmlNamedNodeMap_getLength@Base 1.4.3 - ixmlNamedNodeMap_getNamedItem@Base 1.4.3 - ixmlNamedNodeMap_init@Base 1.4.3 - ixmlNamedNodeMap_item@Base 1.4.3 - ixmlNodeList_addToNodeList@Base 1.4.3 - ixmlNodeList_free@Base 1.4.3 - ixmlNodeList_init@Base 1.4.3 - ixmlNodeList_item@Base 1.4.3 - ixmlNodeList_length@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_allowChildren@Base 1.4.3 - ixmlNode_appendChild@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_cloneAttr@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_cloneAttrDirect@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_cloneCDATASect@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_cloneDoc@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_cloneElement@Base 1.4.3 - ixmlNode_cloneNode@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_cloneNodeTree@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_cloneNodeTreeRecursive@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_cloneTextNode@Base 1.4.3 - ixmlNode_compare@Base 1.4.3 - ixmlNode_free@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_freeSingleNode@Base 1.4.3 - ixmlNode_getAttributes@Base 1.4.3 - ixmlNode_getChildNodes@Base 1.4.3 - ixmlNode_getElementsByTagName@Base 1.4.3 - ixmlNode_getElementsByTagNameNS@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_getElementsByTagNameNSRecursive@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_getElementsByTagNameRecursive@Base 1.4.3 - ixmlNode_getFirstChild@Base 1.4.3 - ixmlNode_getLastChild@Base 1.4.3 - ixmlNode_getLocalName@Base 1.4.3 - ixmlNode_getNamespaceURI@Base 1.4.3 - ixmlNode_getNextSibling@Base 1.4.3 - ixmlNode_getNodeName@Base 1.4.3 - ixmlNode_getNodeType@Base 1.4.3 - ixmlNode_getNodeValue@Base 1.4.3 - ixmlNode_getOwnerDocument@Base 1.4.3 - ixmlNode_getParentNode@Base 1.4.3 - ixmlNode_getPrefix@Base 1.4.3 - ixmlNode_getPreviousSibling@Base 1.4.3 - ixmlNode_hasAttributes@Base 1.4.3 - ixmlNode_hasChildNodes@Base 1.4.3 - ixmlNode_init@Base 1.4.3 - ixmlNode_insertBefore@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_isAncestor@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_isParent@Base 1.4.3 - ixmlNode_removeChild@Base 1.4.3 - ixmlNode_replaceChild@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_setLocalName@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_setNamespaceURI@Base 1.4.3 - ixmlNode_setNodeName@Base 1.4.3 - ixmlNode_setNodeProperties@Base 1.4.3 - ixmlNode_setNodeValue@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_setPrefix@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlNode_setSiblingNodesParent@Base 1.4.3 - ixmlNodetoString@Base 1.4.3 - ixmlParseBuffer@Base 1.4.3 - ixmlParseBufferEx@Base 1.4.3 - ixmlPrintDocument@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlPrintDomTree@Base 1.4.3 -#MISSING: 1:1.6.13# ixmlPrintDomTreeRecursive@Base 1.4.3 - ixmlPrintNode@Base 1.4.3 - ixmlRelaxParser@Base 1.4.3 - ixml_membuf_append@Base 1.4.3 - ixml_membuf_append_str@Base 1.4.3 - ixml_membuf_assign@Base 1.4.3 - ixml_membuf_assign_str@Base 1.4.3 - ixml_membuf_destroy@Base 1.4.3 - ixml_membuf_init@Base 1.4.3 - ixml_membuf_insert@Base 1.4.3 -libthreadutil.so.6 libupnp6 #MINVER# - FreeListAlloc@Base 1.4.3 - FreeListDestroy@Base 1.4.3 - FreeListFree@Base 1.4.3 - FreeListInit@Base 1.4.3 - ListAddAfter@Base 1.4.3 - ListAddBefore@Base 1.4.3 - ListAddHead@Base 1.4.3 - ListAddTail@Base 1.4.3 - ListDelNode@Base 1.4.3 - ListDestroy@Base 1.4.3 - ListFind@Base 1.4.3 - ListHead@Base 1.4.3 - ListInit@Base 1.4.3 - ListNext@Base 1.4.3 - ListPrev@Base 1.4.3 - ListSize@Base 1.4.3 - ListTail@Base 1.4.3 - TPAttrInit@Base 1.4.3 - TPAttrSetIdleTime@Base 1.4.3 - TPAttrSetJobsPerThread@Base 1.4.3 - TPAttrSetMaxJobsTotal@Base 1.4.3 - TPAttrSetMaxThreads@Base 1.4.3 - TPAttrSetMinThreads@Base 1.4.3 - TPAttrSetSchedPolicy@Base 1.4.3 - TPAttrSetStackSize@Base 1:1.6.13 - TPAttrSetStarvationTime@Base 1.4.3 - TPJobInit@Base 1.4.3 - TPJobSetFreeFunction@Base 1.4.3 - TPJobSetPriority@Base 1.4.3 - ThreadPoolAdd@Base 1.4.3 - ThreadPoolAddPersistent@Base 1.4.3 - ThreadPoolGetAttr@Base 1.4.3 - ThreadPoolGetStats@Base 1.4.3 - ThreadPoolInit@Base 1.4.3 - ThreadPoolPrintStats@Base 1.4.3 - ThreadPoolRemove@Base 1.4.3 - ThreadPoolSetAttr@Base 1.4.3 - ThreadPoolShutdown@Base 1.4.3 - TimerThreadInit@Base 1.4.3 - TimerThreadRemove@Base 1.4.3 - TimerThreadSchedule@Base 1.4.3 - TimerThreadShutdown@Base 1.4.3 -#MISSING: 1.6.5# iasnprintf@Base 1.4.3 -#MISSING: 1.6.5# iasnprintfFree@Base 1.4.3 libupnp.so.6 libupnp6 #MINVER# UpnpAcceptSubscription@Base 1.4.3 UpnpAcceptSubscriptionExt@Base 1.4.3 diff -urN 17/debian/patches/0001-Security-fix-for-CERT-issue-VU-922681.branch-1.6.patch 19/debian/patches/0001-Security-fix-for-CERT-issue-VU-922681.branch-1.6.patch --- 17/debian/patches/0001-Security-fix-for-CERT-issue-VU-922681.branch-1.6.patch 2013-02-01 22:38:08.000000000 +0100 +++ 19/debian/patches/0001-Security-fix-for-CERT-issue-VU-922681.branch-1.6.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,90 +0,0 @@ -This patch addresses three possible buffer overflows in function -unique_service_name(). The three issues have the folowing CVE -numbers: - -CVE-2012-5958 Issue #2: Stack buffer overflow of Tempbuf -CVE-2012-5959 Issue #4: Stack buffer overflow of Event->UDN -CVE-2012-5960 Issue #8: Stack buffer overflow of Event->UDN - -Notice that the following issues have already been dealt by previous -work: - -CVE-2012-5961 Issue #1: Stack buffer overflow of Evt->UDN -CVE-2012-5962 Issue #3: Stack buffer overflow of Evt->DeviceType -CVE-2012-5963 Issue #5: Stack buffer overflow of Event->UDN -CVE-2012-5964 Issue #6: Stack buffer overflow of Event->DeviceType -CVE-2012-5965 Issue #7: Stack buffer overflow of Event->DeviceType ---- - ChangeLog | 20 ++++++++++++++++++++ - upnp/src/ssdp/ssdp_server.c | 18 ++++++++++-------- - 2 files changed, 30 insertions(+), 8 deletions(-) - -diff --git a/upnp/src/ssdp/ssdp_server.c b/upnp/src/ssdp/ssdp_server.c -index 231c2c5..8a57d08 100644 ---- a/upnp/src/ssdp/ssdp_server.c -+++ b/upnp/src/ssdp/ssdp_server.c -@@ -467,16 +467,16 @@ int unique_service_name(char *cmd, SsdpEvent *Evt) - else - return -1; - if (ptr3 != NULL) { -- if (strlen("uuid:") + strlen(ptr3 + 1) >= sizeof(Evt->UDN)) -+ if (strlen("uuid:") + strlen(ptr3 + 1) >= sizeof Evt->UDN) - return -1; -- snprintf(Evt->UDN, sizeof(Evt->UDN), "uuid:%s", -- ptr3 + 1); -+ snprintf(Evt->UDN, sizeof Evt->UDN, "uuid:%s", ptr3 + 1); - } - else - return -1; - ptr1 = strstr(cmd, ":"); - if (ptr1 != NULL) { - n = (size_t)ptr3 - (size_t)ptr1; -+ n = n >= sizeof TempBuf ? sizeof TempBuf - 1 : n; - strncpy(TempBuf, ptr1, n); - TempBuf[n] = '\0'; - if (strlen("urn") + strlen(TempBuf) >= sizeof(Evt->DeviceType)) -@@ -490,27 +490,28 @@ int unique_service_name(char *cmd, SsdpEvent *Evt) - if ((TempPtr = strstr(cmd, "uuid")) != NULL) { - if ((Ptr = strstr(cmd, "::")) != NULL) { - n = (size_t)Ptr - (size_t)TempPtr; -+ n = n >= sizeof Evt->UDN ? sizeof Evt->UDN - 1 : n; - strncpy(Evt->UDN, TempPtr, n); - Evt->UDN[n] = '\0'; - } else { - memset(Evt->UDN, 0, sizeof(Evt->UDN)); -- strncpy(Evt->UDN, TempPtr, sizeof(Evt->UDN) - 1); -+ strncpy(Evt->UDN, TempPtr, sizeof Evt->UDN - 1); - } - CommandFound = 1; - } - if (strstr(cmd, "urn:") != NULL && strstr(cmd, ":service:") != NULL) { - if ((TempPtr = strstr(cmd, "urn")) != NULL) { -- memset(Evt->ServiceType, 0, sizeof(Evt->ServiceType)); -+ memset(Evt->ServiceType, 0, sizeof Evt->ServiceType); - strncpy(Evt->ServiceType, TempPtr, -- sizeof(Evt->ServiceType) - 1); -+ sizeof Evt->ServiceType - 1); - CommandFound = 1; - } - } - if (strstr(cmd, "urn:") != NULL && strstr(cmd, ":device:") != NULL) { - if ((TempPtr = strstr(cmd, "urn")) != NULL) { -- memset(Evt->DeviceType, 0, sizeof(Evt->DeviceType)); -+ memset(Evt->DeviceType, 0, sizeof Evt->DeviceType); - strncpy(Evt->DeviceType, TempPtr, -- sizeof(Evt->DeviceType) - 1); -+ sizeof Evt->DeviceType - 1); - CommandFound = 1; - } - } -@@ -518,6 +519,7 @@ int unique_service_name(char *cmd, SsdpEvent *Evt) - /* Everything before "::upnp::rootdevice" is the UDN. */ - if (TempPtr != cmd) { - n = (size_t)TempPtr - (size_t)cmd; -+ n = n >= sizeof Evt->UDN ? sizeof Evt->UDN - 1 : n; - strncpy(Evt->UDN, cmd, n); - Evt->UDN[n] = 0; - CommandFound = 1; --- -1.7.7 - diff -urN 17/debian/patches/01-debian-md5-licence.patch 19/debian/patches/01-debian-md5-licence.patch --- 17/debian/patches/01-debian-md5-licence.patch 2012-03-06 15:06:59.000000000 +0100 +++ 19/debian/patches/01-debian-md5-licence.patch 2014-04-30 13:26:45.000000000 +0200 @@ -1,11 +1,9 @@ Description: Replace RSA Inc copyright MD5 functions by public domain implementation. Bug-Debian: http://bugs.debian.org/459516 -Index: libupnp-1.6.16+git.3e7bf144/configure.ac -=================================================================== ---- libupnp-1.6.16+git.3e7bf144.orig/configure.ac 2012-03-06 14:06:06.000000000 +0000 -+++ libupnp-1.6.16+git.3e7bf144/configure.ac 2012-03-06 14:06:37.000000000 +0000 -@@ -542,6 +542,9 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -614,6 +614,9 @@ fi # Checks for typedefs, structures, and compiler characteristics # AC_C_CONST @@ -15,10 +13,8 @@ # The test for socklen_t was getting it wrong when it exists but is in ws2tcpip.h, # so we use a new test. -Index: libupnp-1.6.16+git.3e7bf144/upnp/src/inc/md5.h -=================================================================== ---- libupnp-1.6.16+git.3e7bf144.orig/upnp/src/inc/md5.h 2012-03-06 14:06:06.000000000 +0000 -+++ libupnp-1.6.16+git.3e7bf144/upnp/src/inc/md5.h 2012-03-06 14:06:37.000000000 +0000 +--- a/upnp/src/inc/md5.h ++++ b/upnp/src/inc/md5.h @@ -1,39 +1,47 @@ -/* MD5.H - header file for MD5C.C */ - @@ -101,10 +97,8 @@ +void MD5Transform(UWORD32 buf[4], UWORD32 const in[16]); +#endif /* !MD5_H */ -Index: libupnp-1.6.16+git.3e7bf144/upnp/src/uuid/md5.c -=================================================================== ---- libupnp-1.6.16+git.3e7bf144.orig/upnp/src/uuid/md5.c 2012-03-06 14:06:06.000000000 +0000 -+++ libupnp-1.6.16+git.3e7bf144/upnp/src/uuid/md5.c 2012-03-06 14:06:57.000000000 +0000 +--- a/upnp/src/uuid/md5.c ++++ b/upnp/src/uuid/md5.c @@ -1,353 +1,241 @@ /* - MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm @@ -656,11 +650,9 @@ } +#endif -Index: libupnp-1.6.16+git.3e7bf144/upnp/src/uuid/sysdep.c -=================================================================== ---- libupnp-1.6.16+git.3e7bf144.orig/upnp/src/uuid/sysdep.c 2012-03-06 14:06:06.000000000 +0000 -+++ libupnp-1.6.16+git.3e7bf144/upnp/src/uuid/sysdep.c 2012-03-06 14:06:37.000000000 +0000 -@@ -78,7 +78,7 @@ +--- a/upnp/src/uuid/sysdep.c ++++ b/upnp/src/uuid/sysdep.c +@@ -78,7 +78,7 @@ void get_system_time(uuid_time_t *uuid_t void get_random_info(unsigned char seed[16]) { @@ -669,7 +661,7 @@ typedef struct { MEMORYSTATUS m; SYSTEM_INFO s; -@@ -126,7 +126,7 @@ +@@ -126,7 +126,7 @@ void get_system_time(uuid_time_t *uuid_t void get_random_info(unsigned char seed[16]) { @@ -678,11 +670,9 @@ typedef struct { /*struct sysinfo s; */ struct timeval t; -Index: libupnp-1.6.16+git.3e7bf144/upnp/src/uuid/uuid.c -=================================================================== ---- libupnp-1.6.16+git.3e7bf144.orig/upnp/src/uuid/uuid.c 2012-03-06 14:06:06.000000000 +0000 -+++ libupnp-1.6.16+git.3e7bf144/upnp/src/uuid/uuid.c 2012-03-06 14:06:37.000000000 +0000 -@@ -232,7 +232,7 @@ +--- a/upnp/src/uuid/uuid.c ++++ b/upnp/src/uuid/uuid.c +@@ -232,7 +232,7 @@ void uuid_create_from_name( /*! The length of the name. */ int namelen) { diff -urN 17/debian/patches/07-neaten-debug.patch 19/debian/patches/07-neaten-debug.patch --- 17/debian/patches/07-neaten-debug.patch 2012-03-18 00:37:18.000000000 +0100 +++ 19/debian/patches/07-neaten-debug.patch 2014-04-30 13:26:51.000000000 +0200 @@ -8,10 +8,8 @@ logged via UpnpPrintf from everywhere that called print_http_headers(). Author: Nick Leverton <n...@leverton.org> -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/api/upnpdebug.c -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/api/upnpdebug.c 2012-01-24 23:35:34.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/api/upnpdebug.c 2012-03-17 23:35:48.000000000 +0000 +--- a/upnp/src/api/upnpdebug.c ++++ b/upnp/src/api/upnpdebug.c @@ -40,6 +40,7 @@ #include "upnp.h" #include "upnpdebug.h" @@ -20,7 +18,7 @@ #include <stdarg.h> #include <stdlib.h> #include <stdio.h> -@@ -60,19 +61,19 @@ +@@ -60,19 +61,19 @@ static FILE *ErrFileHnd = NULL; static FILE *InfoFileHnd = NULL; /*! Name of the error file */ @@ -44,7 +42,7 @@ return -1; } } -@@ -87,21 +88,33 @@ +@@ -87,21 +88,33 @@ void UpnpSetLogLevel(Upnp_LogLevel log_l void UpnpCloseLog(void) { if (DEBUG_TARGET == 1) { @@ -84,7 +82,7 @@ } } -@@ -136,24 +149,29 @@ +@@ -136,24 +149,29 @@ void UpnpPrintf(Upnp_LogLevel DLevel, UpnpDisplayFileAndLine(stdout, DbgFileName, DbgLineNo); vfprintf(stdout, FmtStr, ArgList); fflush(stdout); @@ -126,7 +124,7 @@ { FILE *ret; -@@ -161,7 +179,7 @@ +@@ -161,7 +179,7 @@ FILE *GetDebugFile(Upnp_LogLevel DLevel, ret = NULL; if (!DEBUG_TARGET) ret = stdout; @@ -135,7 +133,7 @@ ret = ErrFileHnd; else ret = InfoFileHnd; -@@ -171,78 +189,26 @@ +@@ -171,78 +189,26 @@ FILE *GetDebugFile(Upnp_LogLevel DLevel, void UpnpDisplayFileAndLine(FILE *fd, const char *DbgFileName, int DbgLineNo) { @@ -226,11 +224,9 @@ -} #endif /* DEBUG */ -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/gena/gena_ctrlpt.c -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/gena/gena_ctrlpt.c 2012-03-17 00:27:05.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/gena/gena_ctrlpt.c 2012-03-17 23:35:48.000000000 +0000 -@@ -79,12 +79,12 @@ +--- a/upnp/src/gena/gena_ctrlpt.c ++++ b/upnp/src/gena/gena_ctrlpt.c +@@ -79,12 +79,12 @@ static void GenaAutoRenewSubscription( UpnpString *tmpSID = UpnpString_new(); if (AUTO_RENEW_TIME == 0) { @@ -245,7 +241,7 @@ timeout = sub_struct->TimeOut; UpnpString_set_String(tmpSID, sub_struct->Sid); errCode = genaRenewSubscription( -@@ -108,7 +108,7 @@ +@@ -108,7 +108,7 @@ static void GenaAutoRenewSubscription( free_upnp_timeout(event); goto end_function; } @@ -254,7 +250,7 @@ /* make callback */ callback_fun = handle_info->Callback; -@@ -531,7 +531,7 @@ +@@ -531,7 +531,7 @@ int genaSubscribe( memset(temp_sid, 0, sizeof(temp_sid)); memset(temp_sid2, 0, sizeof(temp_sid2)); @@ -263,7 +259,7 @@ UpnpString_clear(out_sid); -@@ -639,7 +639,7 @@ +@@ -639,7 +639,7 @@ int genaRenewSubscription( free_upnp_timeout((upnp_timeout *)tempJob.arg); } @@ -272,11 +268,9 @@ UpnpClientSubscription_set_RenewEventId(sub, -1); UpnpClientSubscription_assign(sub_copy, sub); -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/inc/gena.h -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/inc/gena.h 2012-01-24 23:35:34.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/inc/gena.h 2012-03-17 23:35:48.000000000 +0000 -@@ -121,10 +121,10 @@ +--- a/upnp/src/inc/gena.h ++++ b/upnp/src/inc/gena.h +@@ -121,10 +121,10 @@ extern ithread_mutex_t GlobalClientSubsc */ #define SubscribeLock() \ UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, \ @@ -289,7 +283,7 @@ /*! -@@ -132,10 +132,10 @@ +@@ -132,10 +132,10 @@ extern ithread_mutex_t GlobalClientSubsc */ #define SubscribeUnlock() \ UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, \ @@ -302,11 +296,9 @@ /*! -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/inc/upnpapi.h -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/inc/upnpapi.h 2012-03-17 00:27:05.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/inc/upnpapi.h 2012-03-17 23:35:48.000000000 +0000 -@@ -137,21 +137,21 @@ +--- a/upnp/src/inc/upnpapi.h ++++ b/upnp/src/inc/upnpapi.h +@@ -137,21 +137,21 @@ Upnp_Handle_Type GetHandleInfo( #define HandleWriteLock() \ @@ -334,11 +326,9 @@ /*! -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/gena/gena_device.c -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/gena/gena_device.c 2012-03-12 21:25:14.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/gena/gena_device.c 2012-03-17 23:35:48.000000000 +0000 -@@ -474,7 +474,7 @@ +--- a/upnp/src/gena/gena_device.c ++++ b/upnp/src/gena/gena_device.c +@@ -470,7 +470,7 @@ int genaInitNotify( memset(&job, 0, sizeof(job)); UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -347,7 +337,7 @@ reference_count = (int *)malloc(sizeof (int)); if (reference_count == NULL) { -@@ -518,7 +518,7 @@ +@@ -514,7 +514,7 @@ int genaInitNotify( goto ExitFunction; } UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -356,7 +346,7 @@ UDN, servId); sub = GetSubscriptionSID(sid, service); -@@ -528,7 +528,7 @@ +@@ -524,7 +524,7 @@ int genaInitNotify( goto ExitFunction; } UpnpPrintf( UPNP_INFO, GENA, __FILE__, __LINE__, @@ -365,7 +355,7 @@ sub->active = 1; if (var_count <= 0) { -@@ -543,7 +543,7 @@ +@@ -539,7 +539,7 @@ int genaInitNotify( goto ExitFunction; } UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -374,7 +364,7 @@ propertySet); headers = AllocGenaHeaders(propertySet); -@@ -601,7 +601,7 @@ +@@ -597,7 +597,7 @@ ExitFunction: HandleUnlock(); UpnpPrintf(UPNP_INFO, GENA, __FILE__, line, @@ -383,7 +373,7 @@ ret); return ret; -@@ -633,7 +633,7 @@ +@@ -629,7 +629,7 @@ int genaInitNotifyExt( memset(&job, 0, sizeof(job)); UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -392,7 +382,7 @@ reference_count = (int *)malloc(sizeof (int)); if (reference_count == NULL) { -@@ -677,7 +677,7 @@ +@@ -673,7 +673,7 @@ int genaInitNotifyExt( goto ExitFunction; } UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -401,7 +391,7 @@ UDN, servId); sub = GetSubscriptionSID(sid, service); -@@ -687,7 +687,7 @@ +@@ -683,7 +683,7 @@ int genaInitNotifyExt( goto ExitFunction; } UpnpPrintf( UPNP_INFO, GENA, __FILE__, __LINE__, @@ -410,7 +400,7 @@ sub->active = 1; if (PropSet == 0) { -@@ -703,7 +703,7 @@ +@@ -699,7 +699,7 @@ int genaInitNotifyExt( goto ExitFunction; } UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -419,7 +409,7 @@ propertySet); headers = AllocGenaHeaders(propertySet); -@@ -761,7 +761,7 @@ +@@ -757,7 +757,7 @@ ExitFunction: HandleUnlock(); UpnpPrintf(UPNP_INFO, GENA, __FILE__, line, @@ -428,7 +418,7 @@ ret); return ret; -@@ -792,7 +792,7 @@ +@@ -788,7 +788,7 @@ int genaNotifyAllExt( memset(&job, 0, sizeof(job)); UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -437,7 +427,7 @@ reference_count = (int *)malloc(sizeof (int)); if (reference_count == NULL) { -@@ -828,7 +828,7 @@ +@@ -824,7 +824,7 @@ int genaNotifyAllExt( goto ExitFunction; } UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -446,7 +436,7 @@ propertySet); headers = AllocGenaHeaders(propertySet); -@@ -905,7 +905,7 @@ +@@ -901,7 +901,7 @@ ExitFunction: HandleUnlock(); UpnpPrintf(UPNP_INFO, GENA, __FILE__, line, @@ -455,7 +445,7 @@ ret); return ret; -@@ -938,7 +938,7 @@ +@@ -934,7 +934,7 @@ int genaNotifyAll( memset(&job, 0, sizeof(job)); UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -464,7 +454,7 @@ reference_count = (int *)malloc(sizeof (int)); if (reference_count == NULL) { -@@ -973,7 +973,7 @@ +@@ -969,7 +969,7 @@ int genaNotifyAll( goto ExitFunction; } UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -473,7 +463,7 @@ propertySet); headers = AllocGenaHeaders(propertySet); -@@ -1051,7 +1051,7 @@ +@@ -1047,7 +1047,7 @@ ExitFunction: HandleUnlock(); UpnpPrintf(UPNP_INFO, GENA, __FILE__, line, @@ -482,7 +472,7 @@ ret); return ret; -@@ -1282,7 +1282,7 @@ +@@ -1278,7 +1278,7 @@ void gena_process_subscription_request( } UpnpPrintf(UPNP_INFO, GENA, __FILE__, __LINE__, @@ -491,7 +481,7 @@ "Max Subscriptions allowed: %d\n", service->TotalSubscriptions, handle_info->MaxSubscriptions); -@@ -1457,7 +1457,7 @@ +@@ -1453,7 +1453,7 @@ void gena_process_subscription_renewal_r } UpnpPrintf( UPNP_INFO, GENA, __FILE__, __LINE__, @@ -500,11 +490,9 @@ "Max Subscriptions allowed:%d\n", service->TotalSubscriptions, handle_info->MaxSubscriptions ); -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/soap/soap_device.c -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/soap/soap_device.c 2012-03-10 17:07:23.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/soap/soap_device.c 2012-03-17 23:35:48.000000000 +0000 -@@ -295,7 +295,7 @@ +--- a/upnp/src/soap/soap_device.c ++++ b/upnp/src/soap/soap_device.c +@@ -292,7 +292,7 @@ static UPNP_INLINE int get_action_node( IXML_NodeList *nl = NULL; UpnpPrintf(UPNP_INFO, SOAP, __FILE__, __LINE__, @@ -513,11 +501,9 @@ *RespNode = NULL; /* Got the Envelope node here */ EnvpNode = ixmlNode_getFirstChild((IXML_Node *) TempDoc); -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/genlib/net/http/httpreadwrite.c -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/genlib/net/http/httpreadwrite.c 2012-03-17 00:27:17.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/genlib/net/http/httpreadwrite.c 2012-03-17 23:36:54.000000000 +0000 -@@ -299,7 +299,6 @@ +--- a/upnp/src/genlib/net/http/httpreadwrite.c ++++ b/upnp/src/genlib/net/http/httpreadwrite.c +@@ -311,7 +311,6 @@ int http_RecvMessage( UpnpPrintf( UPNP_INFO, HTTP, __FILE__, __LINE__, "<<< (RECVD) <<<\n%s\n-----------------\n", parser->msg.msg.buf ); @@ -525,7 +511,7 @@ if (g_maxContentLength > (size_t)0 && parser->content_length > (unsigned int)g_maxContentLength) { *http_error_code = HTTP_REQ_ENTITY_TOO_LARGE; line = __LINE__; -@@ -331,7 +330,6 @@ +@@ -344,7 +343,6 @@ int http_RecvMessage( UpnpPrintf( UPNP_INFO, HTTP, __FILE__, __LINE__, "<<< (RECVD) <<<\n%s\n-----------------\n", parser->msg.msg.buf ); @@ -533,7 +519,7 @@ line = __LINE__; ret = 0; goto ExitFunction; -@@ -696,7 +694,6 @@ +@@ -718,7 +716,6 @@ int http_Download( IN const char *url_st return ret_code; } UpnpPrintf(UPNP_INFO, HTTP, __FILE__, __LINE__, "Response\n"); @@ -541,7 +527,7 @@ /* optional content-type */ if (content_type) { if (httpmsg_find_hdr(&response.msg, HDR_CONTENT_TYPE, &ctype) == -@@ -1641,8 +1638,8 @@ +@@ -1663,8 +1660,8 @@ int http_MakeMessage(membuffer *buf, int /* C string */ s = (char *)va_arg(argp, char *); assert(s); @@ -552,7 +538,7 @@ if (membuffer_append(buf, s, strlen(s))) goto error_handler; } else if (c == 'K') { -@@ -1663,8 +1660,8 @@ +@@ -1685,8 +1682,8 @@ int http_MakeMessage(membuffer *buf, int } else if (c == 'b') { /* mem buffer */ s = (char *)va_arg(argp, char *); @@ -563,11 +549,9 @@ assert(s); length = (size_t) va_arg(argp, size_t); if (membuffer_append(buf, s, length)) -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/genlib/net/http/webserver.c -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/genlib/net/http/webserver.c 2012-03-12 22:08:56.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/genlib/net/http/webserver.c 2012-03-17 23:35:48.000000000 +0000 -@@ -1033,7 +1033,6 @@ +--- a/upnp/src/genlib/net/http/webserver.c ++++ b/upnp/src/genlib/net/http/webserver.c +@@ -1050,7 +1050,6 @@ static int process_request( size_t dummy; const char *extra_headers = NULL; @@ -575,7 +559,7 @@ url = &req->uri; assert(req->method == HTTPMETHOD_GET || req->method == HTTPMETHOD_HEAD || -@@ -1403,7 +1402,6 @@ +@@ -1416,7 +1415,6 @@ static int http_RecvPostMessage( UpnpPrintf(UPNP_INFO, HTTP, __FILE__, __LINE__, "<<< (RECVD) <<<\n%s\n-----------------\n", parser->msg.msg.buf); @@ -583,11 +567,9 @@ parser->position = POS_COMPLETE; } else { /* partial msg or response */ -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/ssdp/ssdp_server.c -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/ssdp/ssdp_server.c 2012-03-17 00:27:17.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/ssdp/ssdp_server.c 2012-03-17 23:35:48.000000000 +0000 -@@ -132,12 +132,12 @@ +--- a/upnp/src/ssdp/ssdp_server.c ++++ b/upnp/src/ssdp/ssdp_server.c +@@ -132,12 +132,12 @@ int AdvertiseAndReply(int AdFlag, UpnpDe NumCopy++; for (i = 0lu;; i++) { UpnpPrintf(UPNP_ALL, API, __FILE__, __LINE__, @@ -602,11 +584,9 @@ i); break; } -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/genlib/net/http/httpparser.c -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/genlib/net/http/httpparser.c 2012-03-17 00:27:17.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/genlib/net/http/httpparser.c 2012-03-17 23:35:48.000000000 +0000 -@@ -2175,37 +2175,3 @@ +--- a/upnp/src/genlib/net/http/httpparser.c ++++ b/upnp/src/genlib/net/http/httpparser.c +@@ -2191,37 +2191,3 @@ const char *method_to_str(IN http_method } @@ -644,11 +624,9 @@ -} -#endif /* DEBUG */ - -Index: libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/inc/httpparser.h -=================================================================== ---- libupnp-1.6.16~git.20120316.d3d17da6.orig/upnp/src/inc/httpparser.h 2012-03-13 09:32:58.000000000 +0000 -+++ libupnp-1.6.16~git.20120316.d3d17da6/upnp/src/inc/httpparser.h 2012-03-17 23:35:48.000000000 +0000 -@@ -476,21 +476,6 @@ +--- a/upnp/src/inc/httpparser.h ++++ b/upnp/src/inc/httpparser.h +@@ -476,21 +476,6 @@ int raw_find_str( IN memptr* raw_value, ************************************************************************/ const char* method_to_str( IN http_method_t method ); diff -urN 17/debian/patches/18-url-upnpstrings.patch 19/debian/patches/18-url-upnpstrings.patch --- 17/debian/patches/18-url-upnpstrings.patch 2012-03-31 11:17:41.000000000 +0200 +++ 19/debian/patches/18-url-upnpstrings.patch 2014-04-30 13:26:58.000000000 +0200 @@ -1,6 +1,6 @@ unchanged: ---- libupnp-1.6.16~git.20120315.c9f3e26f.orig/upnp/inc/upnp.h 2012-03-13 20:45:27.000000000 +0000 -+++ libupnp-1.6.16~git.20120315.c9f3e26f/upnp/inc/upnp.h 2012-03-15 23:15:54.000000000 +0000 +--- a/upnp/inc/upnp.h ++++ b/upnp/inc/upnp.h @@ -45,6 +45,7 @@ #include "upnpconfig.h" #include "UpnpGlobal.h" @@ -9,7 +9,7 @@ /* * \todo Document the exact reason of these include files and solve this -@@ -642,7 +643,7 @@ +@@ -642,7 +643,7 @@ struct Upnp_Action_Complete int ErrCode; /** The control URL for service. */ @@ -18,7 +18,7 @@ /** The DOM document describing the action. */ IXML_Document *ActionRequest; -@@ -692,7 +693,7 @@ +@@ -692,7 +693,7 @@ struct Upnp_State_Var_Complete int ErrCode; /** The control URL for the service. */ @@ -27,7 +27,7 @@ /** The name of the variable. */ char StateVarName[NAME_SIZE]; -@@ -776,7 +777,7 @@ +@@ -776,7 +777,7 @@ struct Upnp_Event_Subscribe { int ErrCode; /** The event URL being subscribed to or removed from. */ @@ -36,10 +36,9 @@ /** The actual subscription time (for subscriptions only). */ int TimeOut; -diff -u libupnp-1.6.16~git.20120315.c9f3e26f/upnp/src/api/upnpapi.c b/upnp/src/api/upnpapi.c ---- libupnp-1.6.16~git.20120315.c9f3e26f/upnp/src/api/upnpapi.c 2012-03-15 23:15:54.000000000 +0000 +--- a/upnp/src/api/upnpapi.c +++ b/upnp/src/api/upnpapi.c -@@ -1917,16 +1917,39 @@ +@@ -1920,16 +1920,39 @@ int UpnpSetMaxSubscriptionTimeOut(UpnpDe #ifdef INCLUDE_CLIENT_APIS @@ -81,7 +80,7 @@ ThreadPoolJob job; memset(&job, 0, sizeof(job)); -@@ -1969,13 +1992,14 @@ +@@ -1972,13 +1995,14 @@ int UpnpSubscribeAsync( Param->FunName = SUBSCRIBE; Param->Handle = Hnd; @@ -96,27 +95,27 @@ - TPJobSetFreeFunction(&job, (free_routine)free); + TPJobSetFreeFunction(&job, (free_routine)Param_delete); TPJobSetPriority(&job, MED_PRIORITY); - ThreadPoolAdd(&gSendThreadPool, &job, NULL); - -@@ -2161,7 +2185,7 @@ + if (ThreadPoolAdd(&gSendThreadPool, &job, NULL) != 0) { + free(Param); +@@ -2166,7 +2190,7 @@ int UpnpUnSubscribeAsync( Param->Fun = Fun; Param->Cookie = (void *)Cookie_const; TPJobInit( &job, ( start_routine ) UpnpThreadDistribution, Param ); - TPJobSetFreeFunction( &job, ( free_routine ) free ); + TPJobSetFreeFunction( &job, ( free_routine ) Param_delete ); TPJobSetPriority( &job, MED_PRIORITY ); - ThreadPoolAdd( &gSendThreadPool, &job, NULL ); - -@@ -2287,7 +2311,7 @@ + if (ThreadPoolAdd( &gSendThreadPool, &job, NULL ) != 0) { + free(Param); +@@ -2294,7 +2318,7 @@ int UpnpRenewSubscriptionAsync( Param->TimeOut = TimeOut; TPJobInit( &job, ( start_routine ) UpnpThreadDistribution, Param ); - TPJobSetFreeFunction( &job, ( free_routine ) free ); + TPJobSetFreeFunction( &job, ( free_routine ) Param_delete ); TPJobSetPriority( &job, MED_PRIORITY ); - ThreadPoolAdd( &gSendThreadPool, &job, NULL ); - -@@ -2679,7 +2703,7 @@ + if (ThreadPoolAdd( &gSendThreadPool, &job, NULL ) != 0) { + free(Param); +@@ -2688,7 +2712,7 @@ int UpnpSendActionEx( int UpnpSendActionAsync( UpnpClient_Handle Hnd, @@ -125,7 +124,7 @@ const char *ServiceType_const, const char *DevUDN_const, IXML_Document *Act, -@@ -2691,7 +2715,6 @@ +@@ -2700,7 +2724,6 @@ int UpnpSendActionAsync( struct Handle_Info *SInfo = NULL; struct UpnpNonblockParam *Param; DOMString tmpStr; @@ -133,7 +132,7 @@ char *ServiceType = (char *)ServiceType_const; /* udn not used? */ /*char *DevUDN = (char *)DevUDN_const;*/ -@@ -2738,7 +2761,8 @@ +@@ -2748,7 +2771,8 @@ int UpnpSendActionAsync( Param->FunName = ACTION; Param->Handle = Hnd; @@ -143,7 +142,7 @@ strncpy( Param->ServiceType, ServiceType, sizeof ( Param->ServiceType ) - 1 ); -@@ -2757,7 +2781,7 @@ +@@ -2767,7 +2791,7 @@ int UpnpSendActionAsync( Param->Fun = Fun; TPJobInit( &job, ( start_routine ) UpnpThreadDistribution, Param ); @@ -151,8 +150,8 @@ + TPJobSetFreeFunction( &job, ( free_routine ) Param_delete ); TPJobSetPriority( &job, MED_PRIORITY ); - ThreadPoolAdd( &gSendThreadPool, &job, NULL ); -@@ -2771,7 +2795,7 @@ + if (ThreadPoolAdd( &gSendThreadPool, &job, NULL ) != 0) { +@@ -2783,7 +2807,7 @@ int UpnpSendActionAsync( int UpnpSendActionExAsync( UpnpClient_Handle Hnd, @@ -161,7 +160,7 @@ const char *ServiceType_const, const char *DevUDN_const, IXML_Document *Header, -@@ -2783,7 +2807,6 @@ +@@ -2795,7 +2819,6 @@ int UpnpSendActionExAsync( struct UpnpNonblockParam *Param; DOMString tmpStr; DOMString headerStr = NULL; @@ -169,7 +168,7 @@ char *ServiceType = ( char * )ServiceType_const; ThreadPoolJob job; int retVal = 0; -@@ -2798,7 +2821,7 @@ +@@ -2810,7 +2833,7 @@ int UpnpSendActionExAsync( "Inside UpnpSendActionExAsync\n"); if( Header == NULL ) { @@ -178,7 +177,7 @@ ServiceType_const, DevUDN_const, Act, Fun, Cookie_const ); return retVal; -@@ -2838,7 +2861,8 @@ +@@ -2853,7 +2876,8 @@ int UpnpSendActionExAsync( Param->FunName = ACTION; Param->Handle = Hnd; @@ -188,7 +187,7 @@ strncpy( Param->ServiceType, ServiceType, sizeof ( Param->ServiceType ) - 1 ); retVal = ixmlParseBufferEx( headerStr, &( Param->Header ) ); -@@ -2874,7 +2898,7 @@ +@@ -2889,7 +2913,7 @@ int UpnpSendActionExAsync( Param->Fun = Fun; TPJobInit( &job, ( start_routine ) UpnpThreadDistribution, Param ); @@ -196,8 +195,8 @@ + TPJobSetFreeFunction( &job, ( free_routine ) Param_delete ); TPJobSetPriority( &job, MED_PRIORITY ); - ThreadPoolAdd( &gSendThreadPool, &job, NULL ); -@@ -2888,7 +2912,7 @@ + if (ThreadPoolAdd( &gSendThreadPool, &job, NULL ) != 0) { +@@ -2905,7 +2929,7 @@ int UpnpSendActionExAsync( int UpnpGetServiceVarStatusAsync( UpnpClient_Handle Hnd, @@ -206,7 +205,7 @@ const char *VarName_const, Upnp_FunPtr Fun, const void *Cookie_const) -@@ -2896,7 +2920,6 @@ +@@ -2913,7 +2937,6 @@ int UpnpGetServiceVarStatusAsync( ThreadPoolJob job; struct Handle_Info *SInfo = NULL; struct UpnpNonblockParam *Param; @@ -214,7 +213,7 @@ char *VarName = (char *)VarName_const; memset(&job, 0, sizeof(job)); -@@ -2934,13 +2957,14 @@ +@@ -2951,13 +2974,14 @@ int UpnpGetServiceVarStatusAsync( Param->FunName = STATUS; Param->Handle = Hnd; @@ -231,7 +230,7 @@ TPJobSetPriority( &job, MED_PRIORITY ); -@@ -3588,23 +3612,21 @@ +@@ -3607,23 +3631,21 @@ void UpnpThreadDistribution(struct UpnpN case SUBSCRIBE: { struct Upnp_Event_Subscribe Evt; UpnpString *Sid = UpnpString_new(); @@ -258,7 +257,7 @@ break; } case UNSUBSCRIBE: { -@@ -3617,11 +3639,11 @@ +@@ -3636,11 +3658,11 @@ void UpnpThreadDistribution(struct UpnpN Sid); strncpy((char *)Evt.Sid, UpnpString_get_String(Sid), sizeof(Evt.Sid) - 1); @@ -272,7 +271,7 @@ break; } case RENEW: { -@@ -3638,7 +3660,7 @@ +@@ -3657,7 +3679,7 @@ void UpnpThreadDistribution(struct UpnpN sizeof(Evt.Sid) - 1); Param->Fun(UPNP_EVENT_RENEWAL_COMPLETE, &Evt, Param->Cookie); UpnpString_delete(Sid); @@ -281,7 +280,7 @@ break; } #endif /* EXCLUDE_GENA == 0 */ -@@ -3648,30 +3670,32 @@ +@@ -3667,30 +3689,32 @@ void UpnpThreadDistribution(struct UpnpN memset(&Evt, 0, sizeof(Evt)); Evt.ActionResult = NULL; Evt.ErrCode = SoapSendAction( @@ -320,10 +319,9 @@ break; } #endif /* EXCLUDE_SOAP == 0 */ -unchanged: ---- libupnp-1.6.16~git.20120315.c9f3e26f.orig/upnp/src/inc/upnpapi.h 2012-03-15 19:51:05.000000000 +0000 -+++ libupnp-1.6.16~git.20120315.c9f3e26f/upnp/src/inc/upnpapi.h 2012-03-15 23:15:54.000000000 +0000 -@@ -229,7 +229,7 @@ +--- a/upnp/src/inc/upnpapi.h ++++ b/upnp/src/inc/upnpapi.h +@@ -229,7 +229,7 @@ struct UpnpNonblockParam char DevId[NAME_SIZE]; char ServiceType[NAME_SIZE]; char ServiceVer[NAME_SIZE]; @@ -332,10 +330,9 @@ Upnp_SID SubsId; char *Cookie; Upnp_FunPtr Fun; -unchanged: ---- libupnp-1.6.16~git.20120315.c9f3e26f.orig/upnp/src/gena/gena_ctrlpt.c 2012-03-15 19:51:05.000000000 +0000 -+++ libupnp-1.6.16~git.20120315.c9f3e26f/upnp/src/gena/gena_ctrlpt.c 2012-03-15 23:50:11.000000000 +0000 -@@ -173,8 +173,8 @@ +--- a/upnp/src/gena/gena_ctrlpt.c ++++ b/upnp/src/gena/gena_ctrlpt.c +@@ -173,8 +173,8 @@ static int ScheduleGenaAutoRenew( RenewEventStruct->TimeOut = TimeOut; strncpy(RenewEventStruct->Sid, UpnpString_get_String(tmpSID), sizeof(RenewEventStruct->Sid) - 1); diff -urN 17/debian/patches/20_convenience_libraries.diff 19/debian/patches/20_convenience_libraries.diff --- 17/debian/patches/20_convenience_libraries.diff 1970-01-01 01:00:00.000000000 +0100 +++ 19/debian/patches/20_convenience_libraries.diff 2014-04-30 15:48:36.000000000 +0200 @@ -0,0 +1,34 @@ +Description: Assimilate ixml and threadutil shared libraries into libupnp itself. +Bug-Debian: https://bugs.debian.org/670562 +--- a/ixml/Makefile.am ++++ b/ixml/Makefile.am +@@ -18,7 +18,7 @@ else + AM_CPPFLAGS += -DNDEBUG + endif + +-lib_LTLIBRARIES = libixml.la ++noinst_LTLIBRARIES = libixml.la + + libixml_la_LDFLAGS = -version-info $(LT_VERSION_IXML) \ + -export-symbols-regex '^ixml.*' +--- a/threadutil/Makefile.am ++++ b/threadutil/Makefile.am +@@ -13,7 +13,7 @@ else + endif + + +-lib_LTLIBRARIES = libthreadutil.la ++noinst_LTLIBRARIES = libthreadutil.la + + libthreadutil_la_LDFLAGS = -version-info $(LT_VERSION_THREADUTIL) + +--- a/libupnp.pc.in ++++ b/libupnp.pc.in +@@ -6,6 +6,6 @@ includedir=@includedir@ + Name: libupnp + Description: Linux SDK for UPnP Devices + Version: @VERSION@ +-Libs: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ -L${libdir} -lupnp -lthreadutil -lixml ++Libs: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ -L${libdir} -lupnp + Cflags: @PTHREAD_CFLAGS@ -I${includedir}/upnp + diff -urN 17/debian/patches/series 19/debian/patches/series --- 17/debian/patches/series 2013-02-01 18:36:23.000000000 +0100 +++ 19/debian/patches/series 2014-04-30 15:45:49.000000000 +0200 @@ -3,4 +3,4 @@ 09-update-doc.patch 12-debian-always-debug.patch 18-url-upnpstrings.patch -0001-Security-fix-for-CERT-issue-VU-922681.branch-1.6.patch +20_convenience_libraries.diff diff -urN 17/debian/rules 19/debian/rules --- 17/debian/rules 2012-03-11 20:23:21.000000000 +0100 +++ 19/debian/rules 2014-04-30 16:28:20.000000000 +0200 @@ -7,10 +7,9 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+pie,+bindnow %: - dh $@ --with autotools-dev + dh $@ --with autoreconf override_dh_auto_configure: - autoreconf -f -i dh_auto_configure -- --without-documentation --disable-samples --enable-debug LDFLAGS="$(LDFLAGS_DEF)" override_dh_auto_build: @@ -20,9 +19,7 @@ override_dh_auto_clean: $(RM) -r docs/doxygen dh_auto_clean - find -name "Makefile.in" -print0 | xargs -0r $(RM) $(RM) tags # just in case - $(RM) aclocal.m4 configure autoconfig.h.in override_dh_install: dh_install -plibupnp6-doc --sourcedir=. diff -urN 17/debian/source/options 19/debian/source/options --- 17/debian/source/options 1970-01-01 01:00:00.000000000 +0100 +++ 19/debian/source/options 2014-04-30 16:10:52.000000000 +0200 @@ -0,0 +1 @@ +extend-diff-ignore = "(^|/)(build/inc/autoconfig.h|build/inc/upnpconfig.h)$"