Package: openslp-dfsg
Version: 1.2.1-7.8
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu natty ubuntu-patch



*** /tmp/tmpokF8Uc
In Ubuntu, the attached patch was applied to achieve the following:

  * SECURITY UPDATE: denial of service via circular reference
    - debian/patches/CVE-2010-3609.patch: detect circular reference in
      common/slp_message.c. Patch thanks to SUSE.
    - CVE-2010-3609
  * debian/rules: add dh_quilt_patch and dh_quilt_unpatch so patches in
    debian/patches actually get applied.
  * debian/patches/series: disable 01_have_net_if_arp.diff and
    99_autoreconf.diff since they had never been applied.


Thanks for considering the patch.


-- System Information:
Debian Release: squeeze/sid
  APT prefers natty-updates
  APT policy: (500, 'natty-updates'), (500, 'natty-security'), (500, 'natty')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-7-generic (SMP w/4 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -u openslp-dfsg-1.2.1/debian/changelog openslp-dfsg-1.2.1/debian/changelog
diff -u openslp-dfsg-1.2.1/debian/rules openslp-dfsg-1.2.1/debian/rules
--- openslp-dfsg-1.2.1/debian/rules
+++ openslp-dfsg-1.2.1/debian/rules
@@ -26,6 +26,7 @@
 	dh_testdir
 
 	cp -f /usr/share/misc/config.guess /usr/share/misc/config.sub .
+	dh_quilt_patch
 	touch Makefile.in # work around patch timestamp problems
 	./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
 		    --prefix=/usr --mandir=\$${prefix}/share/man        \
@@ -42,6 +43,7 @@
 
 	# Clean up after the build process.
 	[ ! -f Makefile ] || $(MAKE) clean
+	dh_quilt_unpatch
 	rm -f build-stamp config.status debian/substvars debian/conffiles
 	rm -f config.guess config.sub
 
diff -u openslp-dfsg-1.2.1/debian/patches/series openslp-dfsg-1.2.1/debian/patches/series
--- openslp-dfsg-1.2.1/debian/patches/series
+++ openslp-dfsg-1.2.1/debian/patches/series
@@ -1,2 +1,3 @@
-01_have_net_if_arp.diff
-99_autoreconf.diff
+#01_have_net_if_arp.diff
+#99_autoreconf.diff
+CVE-2010-3609.patch
only in patch2:
unchanged:
--- openslp-dfsg-1.2.1.orig/debian/patches/CVE-2010-3609.patch
+++ openslp-dfsg-1.2.1/debian/patches/CVE-2010-3609.patch
@@ -0,0 +1,27 @@
+Description: fix denial of service via circular reference
+Origin: vendor, https://build.opensuse.org/package/view_file?file=openslp.parseext.diff&package=openslp&project=openSUSE%3A11.4&srcmd5=38039c725b8a6c1e0cdd4efdffa8bcc8
+
+Index: openslp-dfsg-1.2.1/common/slp_message.c
+===================================================================
+--- openslp-dfsg-1.2.1.orig/common/slp_message.c	2011-04-05 14:29:12.063825536 -0400
++++ openslp-dfsg-1.2.1/common/slp_message.c	2011-04-05 14:29:25.203825532 -0400
+@@ -872,10 +872,19 @@
+     int             extid;
+     int             nextoffset;
+     int             result  = SLP_ERROR_OK;
++    int             bufsz = (int)(buffer->end - buffer->start);
+ 
+     nextoffset = message->header.extoffset;
+     while(nextoffset)
+     {
++        /* check for circular reference in list
++         * if the size gets below zero, we know we're
++         * reprocessing extensions in a loop.
++         */
++        bufsz -= 5;
++        if (bufsz <= 0) 
++            return SLP_ERROR_PARSE_ERROR;
++
+         buffer->curpos = buffer->start + nextoffset;
+         if(buffer->curpos + 5 >= buffer->end)
+         {

Reply via email to