summaryrefslogtreecommitdiffstats
path: root/lib/libaccess/lasip.cpp
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2008-10-08 17:29:05 +0000
committerRich Megginson <rmeggins@redhat.com>2008-10-08 17:29:05 +0000
commitb3797a8704696ed77b69a042e75ce5553e24b68b (patch)
treeeae8ee4c9ce9e46c010334d72e942d17ee71f768 /lib/libaccess/lasip.cpp
parent9506a1d704ce99945e12dc797f932b4a50a0da24 (diff)
downloadds-b3797a8704696ed77b69a042e75ce5553e24b68b.tar.gz
ds-b3797a8704696ed77b69a042e75ce5553e24b68b.tar.xz
ds-b3797a8704696ed77b69a042e75ce5553e24b68b.zip
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
Diffstat (limited to 'lib/libaccess/lasip.cpp')
-rw-r--r--lib/libaccess/lasip.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libaccess/lasip.cpp b/lib/libaccess/lasip.cpp
index aa698de6..01c76aa6 100644
--- a/lib/libaccess/lasip.cpp
+++ b/lib/libaccess/lasip.cpp
@@ -340,7 +340,7 @@ LASIpAddPattern(NSErr_t *errp, int netmask, int pattern, LASIpTree_t **treetop)
int stopbit; /* Don't care after this point */
int curbit; /* current bit we're working on */
int curval; /* value of pattern[curbit] */
- LASIpTree_t *curptr; /* pointer to the current node */
+ LASIpTree_t *curptr = NULL; /* pointer to the current node */
LASIpTree_t *newptr;
/* stop at the first 1 in the netmask from low to high */
@@ -448,7 +448,7 @@ int LASIpEval(NSErr_t *errp, char *attr_name, CmpOp_t comparator,
IPAddr_t ip;
int retcode;
LASIpTree_t *node;
- LASIpContext_t *context;
+ LASIpContext_t *context = NULL;
int rv;
char ip_str[124];