[Fedora-directory-commits] ldapserver/ldap/servers/slapd/tools/ldclt ldapfct.c, 1.7, 1.8 scalab01.c, 1.5, 1.6

Richard Allen Megginson rmeggins at fedoraproject.org
Wed Oct 8 17:29:06 UTC 2008


Author: rmeggins

Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/tools/ldclt
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26931/ldapserver/ldap/servers/slapd/tools/ldclt

Modified Files:
	ldapfct.c scalab01.c 
Log Message:
Bug Description: Need to address 64-bit compiler warnings - part 1
Reviewed by: nhosoi (Thanks!)
Fix Description: The intptr_t and uintptr_t are types which are defined as integer types that are the same size as the pointer (void *) type.  On the platforms we currently support, this is the same as long and unsigned long, respectively (ILP32 and LP64).  However, intptr_t and uintptr_t are more portable.  These can be used to assign a value passed as a void * to get an integer value, then "cast down" to an int or PRBool, and vice versa.  This seems to be a common idiom in other applications where values must be passed as void *.
For the printf/scanf formats, there is a standard header called inttypes.h which defines formats to use for various 64 bit quantities, so that you don't need to figure out if you have to use %lld or %ld for a 64-bit value - you just use PRId64 which is set to the correct value.  I also assumed that size_t is defined as the same size as a pointer so I used the PRIuPTR format macro for size_t.
I removed many unused variables and some unused functions.
I put parentheses around assignments in conditional expressions to tell the compiler not to complain about them.
I cleaned up some #defines that were defined more than once.
I commented out some unused goto labels.
Some of our header files shared among several source files define static variables.  I made it so that those variables are not defined unless a macro is set in the source file.  This avoids a lot of unused variable warnings.
I added some return values to functions that were declared as returning a value but did not return a value.  In all of these cases no one was checking the return value anyway.
I put explicit parentheses around cases like this: expr || expr && expr - the && has greater precedence than the ||.  The compiler complains because it wants you to make sure you mean expr || (expr && expr), not (expr || expr) && expr.
I cleaned up several places where the compiler was complaining about possible use of uninitialized variables.  There are still a lot of these cases remaining.
There are a lot of warnings like this:
lib/ldaputil/certmap.c:1279: warning: dereferencing type-punned pointer will break strict-aliasing rules
These are due to our use of void ** to pass in addresses of addresses of structures.  Many of these are calls to slapi_ch_free, but many are not - they are cases where we do not know what the type is going to be and may have to cast and modify the structure or pointer.  I started replacing the calls to slapi_ch_free with slapi_ch_free_string, but there are many many more that need to be fixed.
The dblayer code also contains a fix for https://bugzilla.redhat.com/show_bug.cgi?id=463991 - instead of checking for dbenv->foo_handle to see if a db "feature" is enabled, instead check the flags passed to open the dbenv.  This works for bdb 4.2 through bdb 4.7 and probably other releases as well.
Platforms tested: RHEL5 x86_64, Fedora 8 i386
Flag Day: no
Doc impact: no



Index: ldapfct.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/tools/ldclt/ldapfct.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ldapfct.c	18 Oct 2007 00:08:35 -0000	1.7
+++ ldapfct.c	8 Oct 2008 17:29:04 -0000	1.8
@@ -671,9 +671,9 @@
        */
       tttctx->ldapCtx = ldapssl_init(mctx.hostname, mctx.port, 1);
       if (mctx.mode & VERY_VERBOSE)
-	printf ("ldclt[%d]: T%03d: After ldapssl_init (%s, %d), ldapCtx=0x%08x\n",
+	printf ("ldclt[%d]: T%03d: After ldapssl_init (%s, %d), ldapCtx=0x%p\n",
 		mctx.pid, tttctx->thrdNum, mctx.hostname, mctx.port,
-		(unsigned int)tttctx->ldapCtx);
+		tttctx->ldapCtx);
       if (tttctx->ldapCtx == NULL)
       {
 	printf ("ldclt[%d]: T%03d: Cannot ldapssl_init (%s, %d), errno=%d\n",
@@ -689,14 +689,14 @@
 	 ret = ldapssl_enable_clientauth(tttctx->ldapCtx, "", mctx.keydbpin, mctx.cltcertname);
 	 if (mctx.mode & VERY_VERBOSE)
 	   printf 
-	    ("ldclt[%d]: T%03d: After ldapssl_enable_clientauth (ldapCtx=0x%08x, %s, %s)",
-	     mctx.pid, tttctx->thrdNum, (unsigned int)tttctx->ldapCtx, mctx.keydbpin,
+	    ("ldclt[%d]: T%03d: After ldapssl_enable_clientauth (ldapCtx=0x%p, %s, %s)",
+	     mctx.pid, tttctx->thrdNum, tttctx->ldapCtx, mctx.keydbpin,
 	     mctx.cltcertname);
 	 if (ret < 0)
 	 {
 	   printf
-	    ("ldclt[%d]: T%03d: Cannot ldapssl_enable_clientauth (ldapCtx=0x%08x, %s, %s)",
-	     mctx.pid, tttctx->thrdNum, (unsigned int)tttctx->ldapCtx, mctx.keydbpin,
+	    ("ldclt[%d]: T%03d: Cannot ldapssl_enable_clientauth (ldapCtx=0x%p, %s, %s)",
+	     mctx.pid, tttctx->thrdNum, tttctx->ldapCtx, mctx.keydbpin,
 	     mctx.cltcertname);
 	   ldap_perror(tttctx->ldapCtx, "ldapssl_enable_clientauth");
 	   fflush (stdout);
@@ -709,9 +709,9 @@
        */
       tttctx->ldapCtx = ldap_init (mctx.hostname, mctx.port);
       if (mctx.mode & VERY_VERBOSE)
-	printf ("ldclt[%d]: T%03d: After ldap_init (%s, %d), ldapCtx=0x%08x\n",
+	printf ("ldclt[%d]: T%03d: After ldap_init (%s, %d), ldapCtx=0x%p\n",
 		mctx.pid, tttctx->thrdNum, mctx.hostname, mctx.port,
-		(unsigned int)tttctx->ldapCtx);
+		tttctx->ldapCtx);
       if (tttctx->ldapCtx == NULL)
       {
 	printf ("ldclt[%d]: T%03d: Cannot ldap_init (%s, %d), errno=%d\n",
@@ -805,7 +805,6 @@
   } else if ((mctx.mod2 & M2_SASLAUTH) && ((!(tttctx->binded)) ||
                                           (mctx.mode & BIND_EACH_OPER))) {
     void *defaults;
-    LDAPControl **rctrls = NULL;
     char *my_saslauthid = NULL;
 
     if ( mctx.sasl_mech == NULL) {
@@ -1836,9 +1835,9 @@
        */
       tttctx->ldapCtx = ldapssl_init(mctx.hostname, mctx.port, 1);
       if (mctx.mode & VERY_VERBOSE)
-	printf ("ldclt[%d]: T%03d: After ldapssl_init (%s, %d), ldapCtx=0x%08x\n",
+	printf ("ldclt[%d]: T%03d: After ldapssl_init (%s, %d), ldapCtx=0x%p\n",
 		mctx.pid, tttctx->thrdNum, mctx.hostname, mctx.port,
-		(unsigned int)tttctx->ldapCtx);
+		tttctx->ldapCtx);
       if (tttctx->ldapCtx == NULL)
       {
 	printf ("ldclt[%d]: T%03d: Cannot ldapssl_init (%s, %d), errno=%d\n",
@@ -1854,14 +1853,14 @@
 	 ret = ldapssl_enable_clientauth(tttctx->ldapCtx, "", mctx.keydbpin, mctx.cltcertname);
 	 if (mctx.mode & VERY_VERBOSE)
 	   printf 
-	     ("ldclt[%d]: T%03d: After ldapssl_enable_clientauth (ldapCtx=0x%08x, %s, %s)",
-	      mctx.pid, tttctx->thrdNum, (unsigned int)tttctx->ldapCtx, mctx.keydbpin,
+	     ("ldclt[%d]: T%03d: After ldapssl_enable_clientauth (ldapCtx=0x%p, %s, %s)",
+	      mctx.pid, tttctx->thrdNum, tttctx->ldapCtx, mctx.keydbpin,
 	      mctx.cltcertname);
 	 if (ret < 0)
 	 {
 	   printf 
-	    ("ldclt[%d]: T%03d: Cannot ldapssl_enable_clientauth (ldapCtx=0x%08x, %s, %s)",
-	     mctx.pid, tttctx->thrdNum, (unsigned int)tttctx->ldapCtx, mctx.keydbpin,
+	    ("ldclt[%d]: T%03d: Cannot ldapssl_enable_clientauth (ldapCtx=0x%p, %s, %s)",
+	     mctx.pid, tttctx->thrdNum, tttctx->ldapCtx, mctx.keydbpin,
 	     mctx.cltcertname);
 	   fflush (stdout);
 	   return (-1);


Index: scalab01.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/tools/ldclt/scalab01.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- scalab01.c	18 Oct 2007 00:08:35 -0000	1.5
+++ scalab01.c	8 Oct 2008 17:29:04 -0000	1.6
@@ -524,8 +524,8 @@
      */
     s1ctx.ldapCtx = ldapssl_init(mctx.hostname, mctx.port, 1);
     if (mctx.mode & VERY_VERBOSE)
-      printf ("ldclt[%d]: ctrl: ldapssl_init (%s, %d), ldapCtx=0x%08x\n",
-			mctx.pid, mctx.hostname, mctx.port, (unsigned int)s1ctx.ldapCtx);
+      printf ("ldclt[%d]: ctrl: ldapssl_init (%s, %d), ldapCtx=0x%p\n",
+			mctx.pid, mctx.hostname, mctx.port, s1ctx.ldapCtx);
     if (s1ctx.ldapCtx == NULL)
     {
       printf ("ldclt[%d]: ctrl: Cannot ldapssl_init (%s, %d), errno=%d\n",
@@ -541,13 +541,13 @@
       ret = ldapssl_enable_clientauth(s1ctx.ldapCtx, "", mctx.keydbpin, mctx.cltcertname);
       if (mctx.mode & VERY_VERBOSE)
 	printf
-	    ("ldclt[%d]: ctrl: After ldapssl_enable_clientauth (ldapCtx=0x%08x, %s, %s)",
-	     mctx.pid, (unsigned int)s1ctx.ldapCtx, mctx.keydbpin, mctx.cltcertname);
+	    ("ldclt[%d]: ctrl: After ldapssl_enable_clientauth (ldapCtx=0x%p, %s, %s)",
+	     mctx.pid, s1ctx.ldapCtx, mctx.keydbpin, mctx.cltcertname);
       if (ret < 0)
       {
 	printf
-	    ("ldclt[%d]: ctrl: Cannot ldapssl_enable_clientauth (ldapCtx=0x%08x, %s, %s)",
-	     mctx.pid, (unsigned int)s1ctx.ldapCtx, mctx.keydbpin, mctx.cltcertname);
+	    ("ldclt[%d]: ctrl: Cannot ldapssl_enable_clientauth (ldapCtx=0x%p, %s, %s)",
+	     mctx.pid, s1ctx.ldapCtx, mctx.keydbpin, mctx.cltcertname);
 	ldap_perror(s1ctx.ldapCtx, "ldapssl_enable_clientauth");
 	fflush (stdout);
 	return (-1);
@@ -561,8 +561,8 @@
      */
     s1ctx.ldapCtx = ldap_init (mctx.hostname, mctx.port);
     if (mctx.mode & VERY_VERBOSE)
-      printf ("ldclt[%d]: ctrl: After ldap_init (%s, %d), ldapCtx=0x%08x\n",
-		mctx.pid, mctx.hostname, mctx.port, (unsigned int)s1ctx.ldapCtx);
+      printf ("ldclt[%d]: ctrl: After ldap_init (%s, %d), ldapCtx=0x%p\n",
+		mctx.pid, mctx.hostname, mctx.port, s1ctx.ldapCtx);
     if (s1ctx.ldapCtx == NULL)
     {
       printf ("ldclt[%d]: ctrl: Cannot ldap_init (%s, %d), errno=%d\n",




More information about the Fedora-directory-commits mailing list