From 684405758a96bd9fb47480d44f2e1a2f038f8def Mon Sep 17 00:00:00 2001 From: Michal Zidek Date: Mon, 30 Jun 2014 15:52:43 +0200 Subject: Suppress safealign warnings with DISCARD_ALIGN. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These warnings were all false positives. fixes: https://fedorahosted.org/sssd/ticket/1359 Reviewed-by: Lukáš Slebodník --- src/sss_client/nss_group.c | 2 +- src/sss_client/nss_services.c | 2 +- src/util/refcount.c | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/sss_client/nss_group.c b/src/sss_client/nss_group.c index 9e259318d..1614c33b5 100644 --- a/src/sss_client/nss_group.c +++ b/src/sss_client/nss_group.c @@ -237,7 +237,7 @@ static int sss_nss_getgr_readrep(struct sss_nss_gr_rep *pr, pad = PADDING_SIZE(i, char *); /* now members */ - pr->result->gr_mem = (char **)&(pr->buffer[i+pad]); + pr->result->gr_mem = DISCARD_ALIGN(&(pr->buffer[i+pad]), char **); ptmem = (sizeof(char *) * (mem_num + 1)) + pad; if (ptmem > dlen) { diff --git a/src/sss_client/nss_services.c b/src/sss_client/nss_services.c index e89e0d2f1..64e0b43e1 100644 --- a/src/sss_client/nss_services.c +++ b/src/sss_client/nss_services.c @@ -131,7 +131,7 @@ sss_nss_getsvc_readrep(struct sss_nss_svc_rep *sr, pad = PADDING_SIZE(i, char *); /* Copy in the aliases */ - sr->result->s_aliases = (char **) &(sr->buffer[i+pad]); + sr->result->s_aliases = DISCARD_ALIGN(&(sr->buffer[i+pad]), char **); ptaliases = (sizeof(char *) * (num_aliases + 1)) + pad; if (ptaliases > dlen) { diff --git a/src/util/refcount.c b/src/util/refcount.c index 735170d1b..69873d3df 100644 --- a/src/util/refcount.c +++ b/src/util/refcount.c @@ -48,6 +48,7 @@ _rc_alloc(const void *context, size_t size, size_t refcount_offset, const char *type_name) { struct wrapper *wrapper; + char *refcount_pos; wrapper = talloc(context, struct wrapper); if (wrapper == NULL) { @@ -60,7 +61,8 @@ _rc_alloc(const void *context, size_t size, size_t refcount_offset, return NULL; }; - wrapper->refcount = (int *)((char *)wrapper->ptr + refcount_offset); + refcount_pos = (char *)wrapper->ptr + refcount_offset; + wrapper->refcount = DISCARD_ALIGN(refcount_pos, int *); *wrapper->refcount = 1; talloc_set_destructor(wrapper, refcount_destructor); @@ -72,6 +74,7 @@ void * _rc_reference(const void *context, size_t refcount_offset, void *source) { struct wrapper *wrapper; + char *refcount_pos; wrapper = talloc(context, struct wrapper); if (wrapper == NULL) { @@ -79,7 +82,8 @@ _rc_reference(const void *context, size_t refcount_offset, void *source) } wrapper->ptr = source; - wrapper->refcount = (int *)((char *)wrapper->ptr + refcount_offset); + refcount_pos = (char *)wrapper->ptr + refcount_offset; + wrapper->refcount = DISCARD_ALIGN(refcount_pos, int *); (*wrapper->refcount)++; talloc_set_destructor(wrapper, refcount_destructor); -- cgit