svn commit: samba r21960 - in branches: SAMBA_3_0/source/lib SAMBA_3_0/source/librpc/ndr SAMBA_3_0/source/smbd SAMBA_3_0_25/source/lib SAMBA_3_0_25/source/librpc/ndr SAMBA_3_0_25/source/smbd

vlendec at samba.org vlendec at samba.org
Sat Mar 24 18:14:47 GMT 2007


Author: vlendec
Date: 2007-03-24 18:14:46 +0000 (Sat, 24 Mar 2007)
New Revision: 21960

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21960

Log:
Fix bugs 4463,4464,4465,4466. Thanks Jason :-)
Modified:
   branches/SAMBA_3_0/source/lib/util_tdb.c
   branches/SAMBA_3_0/source/librpc/ndr/ndr_sec_helper.c
   branches/SAMBA_3_0/source/librpc/ndr/sid.c
   branches/SAMBA_3_0/source/smbd/msdfs.c
   branches/SAMBA_3_0_25/source/lib/util_tdb.c
   branches/SAMBA_3_0_25/source/librpc/ndr/ndr_sec_helper.c
   branches/SAMBA_3_0_25/source/librpc/ndr/sid.c
   branches/SAMBA_3_0_25/source/smbd/msdfs.c


Changeset:
Modified: branches/SAMBA_3_0/source/lib/util_tdb.c
===================================================================
--- branches/SAMBA_3_0/source/lib/util_tdb.c	2007-03-24 18:01:39 UTC (rev 21959)
+++ branches/SAMBA_3_0/source/lib/util_tdb.c	2007-03-24 18:14:46 UTC (rev 21960)
@@ -25,18 +25,6 @@
 #undef calloc
 #undef strdup
 
-/***************************************************************
- Allow a caller to set a "alarm" flag that tdb can check to abort
- a blocking lock on SIGALRM.
-***************************************************************/
-
-static sig_atomic_t *palarm_fired;
-
-static void tdb_set_lock_alarm(sig_atomic_t *palarm)
-{
-	palarm_fired = palarm;
-}
-
 /* these are little tdb utility functions that are meant to make
    dealing with a tdb database a little less cumbersome in Samba */
 
@@ -77,7 +65,6 @@
 	/* Allow tdb_chainlock to be interrupted by an alarm. */
 	int ret;
 	gotalarm = 0;
-	tdb_set_lock_alarm(CONST_DISCARD(sig_atomic_t *, &gotalarm));
 
 	if (timeout) {
 		CatchSignal(SIGALRM, SIGNAL_CAST gotalarm_sig);

Modified: branches/SAMBA_3_0/source/librpc/ndr/ndr_sec_helper.c
===================================================================
--- branches/SAMBA_3_0/source/librpc/ndr/ndr_sec_helper.c	2007-03-24 18:01:39 UTC (rev 21959)
+++ branches/SAMBA_3_0/source/librpc/ndr/ndr_sec_helper.c	2007-03-24 18:14:46 UTC (rev 21960)
@@ -130,7 +130,7 @@
 {
 	uint8_t v;
 	NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
-	*r = v;
+	*r = (enum security_ace_type)v;
 	return NT_STATUS_OK;
 }
 
@@ -559,7 +559,7 @@
 {
 	uint16_t v;
 	NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
-	*r = v;
+	*r = (enum security_acl_revision)v;
 	return NT_STATUS_OK;
 }
 
@@ -603,7 +603,7 @@
 		NDR_CHECK(ndr_pull_security_acl_revision(ndr, NDR_SCALARS, &r->revision));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_aces));
-		if (r->num_aces < 0 || r->num_aces > 1000) {
+		if (r->num_aces > 1000) { /* num_aces is unsigned */
 			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
 		}
 		NDR_PULL_ALLOC_N(ndr, r->aces, r->num_aces);
@@ -657,7 +657,7 @@
 {
 	uint8_t v;
 	NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
-	*r = v;
+	*r = (enum security_descriptor_revision)v;
 	return NT_STATUS_OK;
 }
 

Modified: branches/SAMBA_3_0/source/librpc/ndr/sid.c
===================================================================
--- branches/SAMBA_3_0/source/librpc/ndr/sid.c	2007-03-24 18:01:39 UTC (rev 21959)
+++ branches/SAMBA_3_0/source/librpc/ndr/sid.c	2007-03-24 18:14:46 UTC (rev 21960)
@@ -211,7 +211,7 @@
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_align(ndr, 4));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sd_size));
-		if (r->sd_size < 0 || r->sd_size > 0x40000) {
+		if (r->sd_size > 0x40000) { /* sd_size is unsigned */
 			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
 		}
 		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));

Modified: branches/SAMBA_3_0/source/smbd/msdfs.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/msdfs.c	2007-03-24 18:01:39 UTC (rev 21959)
+++ branches/SAMBA_3_0/source/smbd/msdfs.c	2007-03-24 18:14:46 UTC (rev 21960)
@@ -242,13 +242,11 @@
 				int *refcount)
 {
 	pstring temp;
-	char *prot;
 	char *alt_path[MAX_REFERRAL_COUNT];
 	int count = 0, i;
 	struct referral *reflist;
 
 	pstrcpy(temp,target);
-	prot = strtok(temp,":");
 
 	/* parse out the alternate paths */
 	while((count<MAX_REFERRAL_COUNT) &&

Modified: branches/SAMBA_3_0_25/source/lib/util_tdb.c
===================================================================
--- branches/SAMBA_3_0_25/source/lib/util_tdb.c	2007-03-24 18:01:39 UTC (rev 21959)
+++ branches/SAMBA_3_0_25/source/lib/util_tdb.c	2007-03-24 18:14:46 UTC (rev 21960)
@@ -25,18 +25,6 @@
 #undef calloc
 #undef strdup
 
-/***************************************************************
- Allow a caller to set a "alarm" flag that tdb can check to abort
- a blocking lock on SIGALRM.
-***************************************************************/
-
-static sig_atomic_t *palarm_fired;
-
-static void tdb_set_lock_alarm(sig_atomic_t *palarm)
-{
-	palarm_fired = palarm;
-}
-
 /* these are little tdb utility functions that are meant to make
    dealing with a tdb database a little less cumbersome in Samba */
 
@@ -77,7 +65,6 @@
 	/* Allow tdb_chainlock to be interrupted by an alarm. */
 	int ret;
 	gotalarm = 0;
-	tdb_set_lock_alarm(CONST_DISCARD(sig_atomic_t *, &gotalarm));
 
 	if (timeout) {
 		CatchSignal(SIGALRM, SIGNAL_CAST gotalarm_sig);

Modified: branches/SAMBA_3_0_25/source/librpc/ndr/ndr_sec_helper.c
===================================================================
--- branches/SAMBA_3_0_25/source/librpc/ndr/ndr_sec_helper.c	2007-03-24 18:01:39 UTC (rev 21959)
+++ branches/SAMBA_3_0_25/source/librpc/ndr/ndr_sec_helper.c	2007-03-24 18:14:46 UTC (rev 21960)
@@ -130,7 +130,7 @@
 {
 	uint8_t v;
 	NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
-	*r = v;
+	*r = (enum security_ace_type)v;
 	return NT_STATUS_OK;
 }
 
@@ -559,7 +559,7 @@
 {
 	uint16_t v;
 	NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
-	*r = v;
+	*r = (enum security_acl_revision)v;
 	return NT_STATUS_OK;
 }
 
@@ -603,7 +603,7 @@
 		NDR_CHECK(ndr_pull_security_acl_revision(ndr, NDR_SCALARS, &r->revision));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_aces));
-		if (r->num_aces < 0 || r->num_aces > 1000) {
+		if (r->num_aces > 1000) { /* num_aces is unsigned */
 			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
 		}
 		NDR_PULL_ALLOC_N(ndr, r->aces, r->num_aces);
@@ -657,7 +657,7 @@
 {
 	uint8_t v;
 	NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
-	*r = v;
+	*r = (enum security_descriptor_revision)v;
 	return NT_STATUS_OK;
 }
 

Modified: branches/SAMBA_3_0_25/source/librpc/ndr/sid.c
===================================================================
--- branches/SAMBA_3_0_25/source/librpc/ndr/sid.c	2007-03-24 18:01:39 UTC (rev 21959)
+++ branches/SAMBA_3_0_25/source/librpc/ndr/sid.c	2007-03-24 18:14:46 UTC (rev 21960)
@@ -211,7 +211,7 @@
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_align(ndr, 4));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sd_size));
-		if (r->sd_size < 0 || r->sd_size > 0x40000) {
+		if (r->sd_size > 0x40000) { /* sd_size is unsigned */
 			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
 		}
 		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));

Modified: branches/SAMBA_3_0_25/source/smbd/msdfs.c
===================================================================
--- branches/SAMBA_3_0_25/source/smbd/msdfs.c	2007-03-24 18:01:39 UTC (rev 21959)
+++ branches/SAMBA_3_0_25/source/smbd/msdfs.c	2007-03-24 18:14:46 UTC (rev 21960)
@@ -242,13 +242,11 @@
 				int *refcount)
 {
 	pstring temp;
-	char *prot;
 	char *alt_path[MAX_REFERRAL_COUNT];
 	int count = 0, i;
 	struct referral *reflist;
 
 	pstrcpy(temp,target);
-	prot = strtok(temp,":");
 
 	/* parse out the alternate paths */
 	while((count<MAX_REFERRAL_COUNT) &&



More information about the samba-cvs mailing list