[Pkg-samba-maint] r1408 - in branches/samba/etch/debian: . patches

vorlon at alioth.debian.org vorlon at alioth.debian.org
Sat May 26 10:10:21 UTC 2007


Author: vorlon
Date: 2007-05-26 10:10:21 +0000 (Sat, 26 May 2007)
New Revision: 1408

Added:
   branches/samba/etch/debian/patches/security-CVE-2007-2444_fixed-parse_prs.patch
Modified:
   branches/samba/etch/debian/changelog
   branches/samba/etch/debian/patches/series
Log:
New patch to fix a regression introduced with the fix for CVE-2007-2446.
Closes: #425680.



Modified: branches/samba/etch/debian/changelog
===================================================================
--- branches/samba/etch/debian/changelog	2007-05-26 09:59:43 UTC (rev 1407)
+++ branches/samba/etch/debian/changelog	2007-05-26 10:10:21 UTC (rev 1408)
@@ -1,3 +1,11 @@
+samba (3.0.24-6etch3) stable-security; urgency=high
+
+  * The fix for CVE-2007-2444 broke connections to servers that are domain
+    members. Upstream bug #4637
+    Closes: #425680
+
+ -- Christian Perrier <bubulle at debian.org>  Wed, 23 May 2007 21:35:28 +0200
+
 samba (3.0.24-6etch2) stable-security; urgency=high
 
   * The fix for CVE-2007-2444 broke the behaviour of "force group" when

Added: branches/samba/etch/debian/patches/security-CVE-2007-2444_fixed-parse_prs.patch
===================================================================
--- branches/samba/etch/debian/patches/security-CVE-2007-2444_fixed-parse_prs.patch	                        (rev 0)
+++ branches/samba/etch/debian/patches/security-CVE-2007-2444_fixed-parse_prs.patch	2007-05-26 10:10:21 UTC (rev 1408)
@@ -0,0 +1,100 @@
+=== modified file 'source/rpc_parse/parse_prs.c'
+--- samba-3.0.24.orig/source/rpc_parse/parse_prs.c	2007-05-12 18:41:54 +0000
++++ samba-3.0.24source/rpc_parse/parse_prs.c	2007-05-23 16:24:52 +0000
+@@ -642,8 +642,12 @@
+ 		return True;
+ 
+ 	if (UNMARSHALLING(ps)) {
+-		if ( !(*data = (void *)PRS_ALLOC_MEM(ps, char, data_size)) )
+-			return False;
++		if (data_size) {
++			if ( !(*data = (void *)PRS_ALLOC_MEM(ps, char, data_size)) )
++				return False;
++		} else {
++			*data = NULL;
++		}		
+ 	}
+ 
+ 	return prs_fn(name, ps, depth, *data);
+@@ -1014,16 +1018,16 @@
+ 	if (q == NULL)
+ 		return False;
+ 
++	/* If the string is empty, we don't have anything to stream */
++	if (str->buf_len==0)
++		return True;
++
+ 	if (UNMARSHALLING(ps)) {
+ 		str->buffer = PRS_ALLOC_MEM(ps,uint16,str->buf_len);
+ 		if (str->buffer == NULL)
+ 			return False;
+ 	}
+ 
+-	/* If the string is empty, we don't have anything to stream */
+-	if (str->buf_len==0)
+-		return True;
+-
+ 	p = (char *)str->buffer;
+ 
+ 	dbg_rw_punival(charmode, name, depth, ps, q, p, str->buf_len);
+@@ -1053,6 +1057,8 @@
+ 			buf->buffer = PRS_ALLOC_MEM(ps, uint16, buf->buf_max_len);
+ 			if ( buf->buffer == NULL )
+ 				return False;
++		} else {
++			buf->buffer = NULL;
+ 		}
+ 	}
+ 
+@@ -1080,9 +1086,13 @@
+ 		if (str->str_str_len > str->str_max_len) {
+ 			return False;
+ 		}
+-		str->buffer = PRS_ALLOC_MEM(ps,unsigned char, str->str_max_len);
+-		if (str->buffer == NULL)
+-			return False;
++		if (str->str_max_len) {
++			str->buffer = PRS_ALLOC_MEM(ps,unsigned char, str->str_max_len);
++			if (str->buffer == NULL)
++				return False;
++		} else {
++			str->buffer = NULL;
++		}
+ 	}
+ 
+ 	if (UNMARSHALLING(ps)) {
+@@ -1127,9 +1137,13 @@
+ 		if (str->uni_str_len > str->uni_max_len) {
+ 			return False;
+ 		}
+-		str->buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_max_len);
+-		if (str->buffer == NULL)
+-			return False;
++		if (str->uni_max_len) {
++			str->buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_max_len);
++			if (str->buffer == NULL)
++				return False;
++		} else {
++			str->buffer = NULL;
++		}
+ 	}
+ 
+ 	p = (char *)str->buffer;
+@@ -1154,9 +1168,13 @@
+ 		return False;
+ 
+ 	if (UNMARSHALLING(ps)) {
+-		str->str.buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_str_len);
+-		if (str->str.buffer == NULL)
+-			return False;
++		if (str->uni_str_len) {
++			str->str.buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_str_len);
++			if (str->str.buffer == NULL)
++				return False;
++		} else {
++			str->str.buffer = NULL;
++		}
+ 	}
+ 
+ 	p = (char *)str->str.buffer;
+

Modified: branches/samba/etch/debian/patches/series
===================================================================
--- branches/samba/etch/debian/patches/series	2007-05-26 09:59:43 UTC (rev 1407)
+++ branches/samba/etch/debian/patches/series	2007-05-26 10:10:21 UTC (rev 1408)
@@ -24,3 +24,4 @@
 security-CVE-2007-2446.patch
 security-CVE-2007-2447.patch
 security-CVE-2007-2444_fixed-force-group.patch
+security-CVE-2007-2444_fixed-parse_prs.patch




More information about the Pkg-samba-maint mailing list