[SCM] Samba Shared Repository - branch master updated

Rusty Russell rusty at samba.org
Wed Oct 6 02:32:02 MDT 2010


The branch, master has been updated
       via  2db1987 idtree: fix right shift of signed ints, crash on large ids on AIX
      from  58c1d0c s4-heimdal: disable using the system compile_et for now

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 2db1987f5a3a4268ce64fe570ff598e3bf4ecc73
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Oct 5 13:06:19 2010 +1030

    idtree: fix right shift of signed ints, crash on large ids on AIX
    
    Right-shifting signed integers in undefined; indeed it seems that on
    AIX with their compiler, doing a 30-bit shift on (INT_MAX-200) gives
    0, not 1 as we might expect.
    
    The obvious fix is to make id and oid unsigned: l (level count) is also
    logically unsigned.
    
    (Note: Samba doesn't generally get to ids > 1 billion, but ctdb does)
    
    Reported-by: Chris Cowan <cc at us.ibm.com>
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    
    Autobuild-User: Rusty Russell <rusty at samba.org>
    Autobuild-Date: Wed Oct  6 08:31:09 UTC 2010 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 lib/util/idtree.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/util/idtree.c b/lib/util/idtree.c
index c147961..6611992 100644
--- a/lib/util/idtree.c
+++ b/lib/util/idtree.c
@@ -105,7 +105,7 @@ static int sub_alloc(struct idr_context *idp, void *ptr, int *starting_id)
 	int n, m, sh;
 	struct idr_layer *p, *pn;
 	struct idr_layer *pa[MAX_LEVEL];
-	int l, id, oid;
+	unsigned int l, id, oid;
 	uint32_t bm;
 
 	memset(pa, 0, sizeof(pa));


-- 
Samba Shared Repository


More information about the samba-cvs mailing list