[Fedora-directory-commits] ldapserver/ldap/servers/slapd/tools ldif.c, 1.6, 1.7 mmldif.c, 1.8, 1.9 pwenc.c, 1.9, 1.10
Richard Allen Megginson
rmeggins at fedoraproject.org
Wed Oct 8 17:29:06 UTC 2008
- Previous message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/plugins/roles roles_plugin.c, 1.8, 1.9
- Next message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/slapd/back-ldbm back-ldbm.h, 1.15, 1.16 dblayer.c, 1.27, 1.28 dbverify.c, 1.2, 1.3 import-merge.c, 1.8, 1.9 import-threads.c, 1.15, 1.16 import.c, 1.11, 1.12 import.h, 1.8, 1.9 ldbm_attr.c, 1.10, 1.11 ldbm_config.c, 1.14, 1.15 ldbm_instance_config.c, 1.10, 1.11 ldbm_modify.c, 1.6, 1.7 ldif2ldbm.c, 1.16, 1.17 monitor.c, 1.7, 1.8 parents.c, 1.5, 1.6 perfctrs.c, 1.9, 1.10
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: rmeggins
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/tools
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26931/ldapserver/ldap/servers/slapd/tools
Modified Files:
ldif.c mmldif.c pwenc.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: ldif.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/tools/ldif.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ldif.c 10 Nov 2006 23:45:51 -0000 1.6
+++ ldif.c 8 Oct 2008 17:29:04 -0000 1.7
@@ -145,7 +145,7 @@
perror( "realloc" );
return( 1 );
}
- fgets(buf+curlen, maxlen/2 + 1, stdin);
+ (void)fgets(buf+curlen, maxlen/2 + 1, stdin);
}
/* we have a full line, chop potential newline and turn into ldif */
if( buf[curlen-1] == '\n' )
Index: mmldif.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/tools/mmldif.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- mmldif.c 18 Oct 2007 00:08:34 -0000 1.8
+++ mmldif.c 8 Oct 2008 17:29:04 -0000 1.9
@@ -816,7 +816,7 @@
lookahead = fgetc(edf1->fp);
if (lookahead != ' ')
break;
- fgets(line, sizeof(line), edf1->fp);
+ (void)fgets(line, sizeof(line), edf1->fp);
len = strlen(line);
for (lptr = line+len-1; len; len--, lptr--) {
if ((*lptr != '\n') && (*lptr != '\r'))
@@ -854,7 +854,7 @@
lookahead = fgetc(edf1->fp);
if (lookahead != ' ')
break;
- fgets(line, sizeof(line), edf1->fp);
+ (void)fgets(line, sizeof(line), edf1->fp);
len = strlen(line);
for (lptr = line+len-1; len; len--, lptr--) {
if ((*lptr != '\n') && (*lptr != '\r'))
Index: pwenc.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/tools/pwenc.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- pwenc.c 19 Jun 2007 18:24:58 -0000 1.9
+++ pwenc.c 8 Oct 2008 17:29:04 -0000 1.10
@@ -145,7 +145,7 @@
fprintf( stderr, "%s\n", errorbuf );
return( NULL );
}
- slapi_ch_free((void **)&abs_configdir);
+ slapi_ch_free_string(&abs_configdir);
slapdFrontendConfig = getFrontendConfig();
if (0 == slapd_config(slapdFrontendConfig->configdir, configfile)) {
@@ -169,11 +169,9 @@
struct pw_scheme *pwsp, *cmppwsp;
extern int optind;
char *cpwd = NULL; /* candidate password for comparison */
- char errorbuf[SLAPI_DSE_RETURNTEXT_SIZE];
slapdFrontendConfig_t *slapdFrontendConfig = NULL;
char *opts = "Hs:c:D:";
- char *configdir = NULL;
name = argv[ 0 ];
pwsp = cmppwsp = NULL;
@@ -409,7 +407,7 @@
rc= 1; /* OK */
}
- slapi_ch_free((void **)&buf);
+ slapi_ch_free_string(&buf);
}
return rc;
- Previous message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/plugins/roles roles_plugin.c, 1.8, 1.9
- Next message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/slapd/back-ldbm back-ldbm.h, 1.15, 1.16 dblayer.c, 1.27, 1.28 dbverify.c, 1.2, 1.3 import-merge.c, 1.8, 1.9 import-threads.c, 1.15, 1.16 import.c, 1.11, 1.12 import.h, 1.8, 1.9 ldbm_attr.c, 1.10, 1.11 ldbm_config.c, 1.14, 1.15 ldbm_instance_config.c, 1.10, 1.11 ldbm_modify.c, 1.6, 1.7 ldif2ldbm.c, 1.16, 1.17 monitor.c, 1.7, 1.8 parents.c, 1.5, 1.6 perfctrs.c, 1.9, 1.10
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Fedora-directory-commits
mailing list