heimdal: Fix size types and array access
This fixes compilation with -Wstrict-overflow=2. with CFLAGS="-O3 -Werror=strict-overflow -Wstrict-overflow=2" gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) gives: addr_families.c: In function ‘krb5_sockaddr2address’: addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:851:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_sockaddr2address (krb5_context context, ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_sockaddr2port’: addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:879:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_sockaddr2port (krb5_context context, ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_addr2sockaddr’: addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:914:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_addr2sockaddr (krb5_context context, ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_max_sockaddr_size’: addr_families.c:955:2: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for(a = at; a < at + num_addrs; ++a) ^ addr_families.c:950:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_max_sockaddr_size (void) ^ addr_families.c:955:2: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for(a = at; a < at + num_addrs; ++a) ^ addr_families.c:955:2: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c:955:2: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_sockaddr_uninteresting’: addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:974:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_sockaddr_uninteresting(const struct sockaddr *sa) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_sockaddr_is_loopback’: addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:983:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_sockaddr_is_loopback(const struct sockaddr *sa) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_h_addr2sockaddr’: addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:1011:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_h_addr2sockaddr (krb5_context context, ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_h_addr2addr’: addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:1042:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_h_addr2addr (krb5_context context, ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_anyaddr’: addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:1073:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_anyaddr (krb5_context context, ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_print_address’: addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:1108:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_print_address (const krb5_address *addr, ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_address_order’: addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:1238:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_address_order(krb5_context context, ^ addr_families.c:1238:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c: In function ‘krb5_free_address’: addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:1333:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_free_address(krb5_context context, ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_copy_address’: addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:1383:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_copy_address(krb5_context context, ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:820:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] addr_families.c: In function ‘krb5_address_prefixlen_boundary’: addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:1537:1: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] krb5_address_prefixlen_boundary(krb5_context context, ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] for (a = at; a < at + num_addrs; ++a) ^ addr_families.c:831:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow] CC libkrb5_la-config_file.lo Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> (Similar to Samba commit aa17db1f4061920512396032fcd3c7c8a4a8f38f)
This commit is contained in:

committed by
Luke Howard

parent
ce2df481b7
commit
122226c3f3
@@ -804,7 +804,7 @@ static struct addr_operations at[] = {
|
||||
}
|
||||
};
|
||||
|
||||
static int num_addrs = sizeof(at) / sizeof(at[0]);
|
||||
static size_t num_addrs = sizeof(at) / sizeof(at[0]);
|
||||
|
||||
static size_t max_sockaddr_size = 0;
|
||||
|
||||
@@ -815,22 +815,24 @@ static size_t max_sockaddr_size = 0;
|
||||
static struct addr_operations *
|
||||
find_af(int af)
|
||||
{
|
||||
struct addr_operations *a;
|
||||
size_t i;
|
||||
|
||||
for (a = at; a < at + num_addrs; ++a)
|
||||
if (af == a->af)
|
||||
return a;
|
||||
for (i = 0; i < num_addrs; i++) {
|
||||
if (af == at[i].af)
|
||||
return &at[i];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct addr_operations *
|
||||
find_atype(krb5_address_type atype)
|
||||
{
|
||||
struct addr_operations *a;
|
||||
size_t i;
|
||||
|
||||
for (a = at; a < at + num_addrs; ++a)
|
||||
if (atype == a->atype)
|
||||
return a;
|
||||
for (i = 0; i < num_addrs; i++) {
|
||||
if (atype == at[i].atype)
|
||||
return &at[i];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -950,10 +952,10 @@ KRB5_LIB_FUNCTION size_t KRB5_LIB_CALL
|
||||
krb5_max_sockaddr_size (void)
|
||||
{
|
||||
if (max_sockaddr_size == 0) {
|
||||
struct addr_operations *a;
|
||||
size_t i;
|
||||
|
||||
for(a = at; a < at + num_addrs; ++a)
|
||||
max_sockaddr_size = max(max_sockaddr_size, a->max_sockaddr_size);
|
||||
for (i = 0; i < num_addrs; i++)
|
||||
max_sockaddr_size = max(max_sockaddr_size, at[i].max_sockaddr_size);
|
||||
}
|
||||
return max_sockaddr_size;
|
||||
}
|
||||
|
Reference in New Issue
Block a user