aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobbie Harwood <rharwood@redhat.com>2017-04-06 12:55:36 -0400
committerGreg Hudson <ghudson@mit.edu>2017-04-14 12:02:50 -0400
commitfb51f82a4377503c3eabe2c497f4653d0bb11ba9 (patch)
tree439991b81692f58b4312ed9f3e52a08a49a38d37
parent28fd0a934cdc7b3b42ce213c6d334d4edf1ab591 (diff)
downloadkrb5-fb51f82a4377503c3eabe2c497f4653d0bb11ba9.zip
krb5-fb51f82a4377503c3eabe2c497f4653d0bb11ba9.tar.gz
krb5-fb51f82a4377503c3eabe2c497f4653d0bb11ba9.tar.bz2
Avoid increased alignment restriction warnings
In kdb_log.h, cast through void * after computing the address in the INDEX macro. In ipropd_svc.c, use a void * instead of a char * as the generic handler return value. In rc4.c, cast through void * when using the cipher state data pointer as a structure pointer. In sha256.c and sha512.c, cast through void * when using the save buffer as a structure pointer. (This code may not be conformant, but it should work in practice given the offsets of the save field in the sha256state and sha512state structures.) [ghudson@mit.edu: rewrote commit message]
-rw-r--r--src/include/kdb_log.h5
-rw-r--r--src/kadmin/server/ipropd_svc.c10
-rw-r--r--src/lib/crypto/builtin/enc_provider/rc4.c2
-rw-r--r--src/lib/crypto/builtin/sha2/sha256.c4
-rw-r--r--src/lib/crypto/builtin/sha2/sha512.c4
5 files changed, 12 insertions, 13 deletions
diff --git a/src/include/kdb_log.h b/src/include/kdb_log.h
index 25b8236..4239575 100644
--- a/src/include/kdb_log.h
+++ b/src/include/kdb_log.h
@@ -21,9 +21,8 @@ extern "C" {
/*
* DB macros
*/
-#define INDEX(ulog, i) (kdb_ent_header_t *)((char *)(ulog) + \
- sizeof(kdb_hlog_t) + \
- (i) * ulog->kdb_block)
+#define INDEX(ulog, i) (kdb_ent_header_t *)(void *) \
+ ((char *)(ulog) + sizeof(kdb_hlog_t) + (i) * ulog->kdb_block)
/*
* Current DB version #
diff --git a/src/kadmin/server/ipropd_svc.c b/src/kadmin/server/ipropd_svc.c
index bce668f..a5415b2 100644
--- a/src/kadmin/server/ipropd_svc.c
+++ b/src/kadmin/server/ipropd_svc.c
@@ -532,9 +532,9 @@ krb5_iprop_prog_1(struct svc_req *rqstp,
union {
kdb_last_t iprop_get_updates_1_arg;
} argument;
- char *result;
+ void *result;
bool_t (*_xdr_argument)(), (*_xdr_result)();
- char *(*local)(/* union XXX *, struct svc_req * */);
+ void *(*local)(/* union XXX *, struct svc_req * */);
char *whoami = "krb5_iprop_prog_1";
if (!check_iprop_rpcsec_auth(rqstp)) {
@@ -555,19 +555,19 @@ krb5_iprop_prog_1(struct svc_req *rqstp,
case IPROP_GET_UPDATES:
_xdr_argument = xdr_kdb_last_t;
_xdr_result = xdr_kdb_incr_result_t;
- local = (char *(*)()) iprop_get_updates_1_svc;
+ local = (void *(*)()) iprop_get_updates_1_svc;
break;
case IPROP_FULL_RESYNC:
_xdr_argument = xdr_void;
_xdr_result = xdr_kdb_fullresync_result_t;
- local = (char *(*)()) iprop_full_resync_1_svc;
+ local = (void *(*)()) iprop_full_resync_1_svc;
break;
case IPROP_FULL_RESYNC_EXT:
_xdr_argument = xdr_u_int32;
_xdr_result = xdr_kdb_fullresync_result_t;
- local = (char *(*)()) iprop_full_resync_ext_1_svc;
+ local = (void *(*)()) iprop_full_resync_ext_1_svc;
break;
default:
diff --git a/src/lib/crypto/builtin/enc_provider/rc4.c b/src/lib/crypto/builtin/enc_provider/rc4.c
index 3776f80..df71048 100644
--- a/src/lib/crypto/builtin/enc_provider/rc4.c
+++ b/src/lib/crypto/builtin/enc_provider/rc4.c
@@ -113,7 +113,7 @@ k5_arcfour_docrypt(krb5_key key, const krb5_data *state, krb5_crypto_iov *data,
return KRB5_BAD_MSIZE;
if (state != NULL) {
- cipher_state = (ArcFourCipherState *)state->data;
+ cipher_state = (ArcFourCipherState *)(void *)state->data;
arcfour_ctx = &cipher_state->ctx;
if (cipher_state->initialized == 0) {
ret = k5_arcfour_init(arcfour_ctx, key->keyblock.contents,
diff --git a/src/lib/crypto/builtin/sha2/sha256.c b/src/lib/crypto/builtin/sha2/sha256.c
index e34bed5..2b5cbe4 100644
--- a/src/lib/crypto/builtin/sha2/sha256.c
+++ b/src/lib/crypto/builtin/sha2/sha256.c
@@ -211,14 +211,14 @@ k5_sha256_update(SHA256_CTX *m, const void *v, size_t len)
#if !defined(WORDS_BIGENDIAN) || defined(_CRAY)
int i;
uint32_t current[16];
- struct x32 *u = (struct x32*)m->save;
+ struct x32 *u = (struct x32*)(void*)m->save;
for(i = 0; i < 8; i++){
current[2*i+0] = swap_uint32_t(u[i].a);
current[2*i+1] = swap_uint32_t(u[i].b);
}
calc(m, current);
#else
- calc(m, (uint32_t*)m->save);
+ calc(m, (uint32_t*)(void*)m->save);
#endif
offset = 0;
}
diff --git a/src/lib/crypto/builtin/sha2/sha512.c b/src/lib/crypto/builtin/sha2/sha512.c
index 8f0ce89..6130655 100644
--- a/src/lib/crypto/builtin/sha2/sha512.c
+++ b/src/lib/crypto/builtin/sha2/sha512.c
@@ -217,14 +217,14 @@ k5_sha512_update (SHA512_CTX *m, const void *v, size_t len)
#if !defined(WORDS_BIGENDIAN) || defined(_CRAY)
int i;
uint64_t current[16];
- struct x64 *us = (struct x64*)m->save;
+ struct x64 *us = (struct x64*)(void*)m->save;
for(i = 0; i < 8; i++){
current[2*i+0] = swap_uint64_t(us[i].a);
current[2*i+1] = swap_uint64_t(us[i].b);
}
calc(m, current);
#else
- calc(m, (uint64_t*)m->save);
+ calc(m, (uint64_t*)(void*)m->save);
#endif
offset = 0;
}