Learn more about these different git repos.
Other Git URLs
When the SSSD is compilied with clang, the compiler prints a couple of alignment warnings. I haven't had time to triage them, but if they are real, they could affect architectures such as ARM.
src/util/refcount.c:63:25: warning: cast from 'char *' to 'int *' increases required alignment from 1 to 4 [-Wcast-align] wrapper->refcount = (int *)((char *)wrapper->ptr + refcount_offset); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/util/refcount.c:82:25: warning: cast from 'char *' to 'int *' increases required alignment from 1 to 4 [-Wcast-align] wrapper->refcount = (int *)((char *)wrapper->ptr + refcount_offset); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/providers/krb5/krb5_auth.c:826:27: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] msg_subtype = (uint32_t *)&buf[p]; ^~~~~~~~~~~~~~~~~~~ src/providers/krb5/krb5_auth.c:829:30: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] expiration = (uint32_t *)&buf[p+sizeof(uint32_t)]; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/sss_client/common.c:403:25: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] obtained_version = ((uint32_t *)repbuf)[0]; ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_passwd.c:192:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] == 0) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_passwd.c:199:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] != 1) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_passwd.c:271:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] == 0) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_passwd.c:278:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] != 1) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_passwd.c:374:11: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if ((((uint32_t *)repbuf)[0] == 0) || (replen - 8 == 0)) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_group.c:244:26: warning: cast from 'char *' to 'char **' increases required alignment from 1 to 8 [-Wcast-align] pr->result->gr_mem = (char **)&(pr->buffer[i+pad]); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/sss_client/nss_group.c:302:16: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] num_ret = ((uint32_t *)repbuf)[0]; ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_group.c:332:14: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] rbuf = &((uint32_t *)repbuf)[2]; ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_group.c:410:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] == 0) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_group.c:417:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] != 1) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_group.c:500:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] == 0) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_group.c:507:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] != 1) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_group.c:609:11: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if ((((uint32_t *)repbuf)[0] == 0) || (replen - 8 == 0)) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_netgroup.c:202:11: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if ((((uint32_t *)repbuf)[0] == 0) || (replen < NETGR_METADATA_COUNT)) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_netgroup.c:270:11: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if ((((uint32_t *)repbuf)[0] == 0) || (replen <= NETGR_METADATA_COUNT)) { src/sss_client/nss_services.c:137:29: warning: cast from 'char *' to 'char **' increases required alignment from 1 to 8 [-Wcast-align] sr->result->s_aliases = (char **) &(sr->buffer[i+pad]); ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ src/sss_client/nss_services.c:229:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] == 0) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_services.c:236:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] != 1) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_services.c:324:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] == 0) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_services.c:331:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if (((uint32_t *)repbuf)[0] != 1) { ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_services.c:448:11: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] if ((((uint32_t *)repbuf)[0] == 0) ^~~~~~~~~~~~~~~~~~ src/sss_client/nss_mc_group.c:67:22: warning: cast from 'char *' to 'char **' increases required alignment from 1 to 8 [-Wcast-align] result->gr_mem = (char **)buffer; ^~~~~~~~~~~~~~~ src/sss_client/pam_sss.c:250:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)(&buf[rp]))[0] = SSS_START_OF_PAM_REQUEST; ^~~~~~~~~~~~~~~~~~~~~~ src/sss_client/pam_sss.c:1121:19: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'int32_t *' (aka 'int *') increases required alignment from 1 to 4 [-Wcast-align] pam_status = ((int32_t *)repbuf)[0]; ^~~~~~~~~~~~~~~~~ src/providers/ipa/ipa_dyndns.c:188:35: warning: cast from 'struct sockaddr *' to 'struct sockaddr_in6 *' increases required alignment from 2 to 4 [-Wcast-align] struct in6_addr *addr = &((struct sockaddr_in6 *) sa)->sin6_addr; ^~~~~~~~~~~~~~~~~~~~~~~ ~~ src/providers/ipa/ipa_dyndns.c:207:34: warning: cast from 'struct sockaddr *' to 'struct sockaddr_in *' increases required alignment from 2 to 4 [-Wcast-align] struct in_addr *addr = &((struct sockaddr_in *) sa)->sin_addr; ^~~~~~~~~~~~~~~~~~~~~~ ~~ src/monitor/monitor.c:1531:16: warning: cast from 'char *' to 'struct inotify_event *' increases required alignment from 1 to 4 [-Wcast-align] in_event = (struct inotify_event *)buf; src/responder/nss/nsssrv_cmd.c:389:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[0] = num; /* num results */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:390:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[1] = 0; /* reserved */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:1089:20: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] cmdctx->id = *((uint32_t *)body); ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:1539:13: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] num = *((uint32_t *)body); ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:1953:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[0] = num; /* num results */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:1954:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[1] = 0; /* reserved */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:2473:20: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] cmdctx->id = *((uint32_t *)body); ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:2924:13: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] num = *((uint32_t *)body); ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:3079:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[2 + bindex] = gid; ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:3083:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[0] = num-skipped; /* num results */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_cmd.c:3084:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[1] = 0; /* reserved */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_netgroup.c:669:14: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[0] = 1; /* Got some results */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_netgroup.c:670:14: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[1] = 0; /* reserved */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_netgroup.c:831:13: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] num = *((uint32_t *)body); ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_netgroup.c:970:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[0] = num; /* num results */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_netgroup.c:971:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[1] = 0; /* reserved */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_services.c:771:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[0] = num; /* num results */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_services.c:772:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[1] = 0; /* reserved */ ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_services.c:1740:13: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] num = *((uint32_t *)body); ^~~~~~~~~~~~~~~~ src/responder/nss/nsssrv_mmap_cache.c:281:22: warning: cast from 'char *' to 'rel_ptr_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] name_ptr = *((rel_ptr_t *)rec->data); ^~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_cmd.c:54:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[0] = 0; /* num results */ ^~~~~~~~~~~~~~~~ src/responder/common/responder_cmd.c:55:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[1] = 0; /* reserved */ ^~~~~~~~~~~~~~~~ src/responder/common/responder_cmd.c:136:6: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[0] = cctx->cli_protocol_version!=NULL ? ^~~~~~~~~~~~~~~~ src/responder/common/responder_cmd.c:138:5: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] DEBUG(5, ("Offered version [%d].\n", ((uint32_t *)body)[0])); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_cmd.c:138:43: note: instantiated from: DEBUG(5, ("Offered version [%d].\n", ((uint32_t *)body)[0])); ^~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:77:21: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->len = &((uint32_t *)packet->buffer)[0]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:78:21: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->cmd = &((uint32_t *)packet->buffer)[1]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:79:24: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->status = &((uint32_t *)packet->buffer)[2]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:80:26: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->reserved = &((uint32_t *)packet->buffer)[3]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:81:33: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->body = (uint8_t *)&((uint32_t *)packet->buffer)[4]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:126:29: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->len = &((uint32_t *)packet->buffer)[0]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:127:29: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->cmd = &((uint32_t *)packet->buffer)[1]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:128:32: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->status = &((uint32_t *)packet->buffer)[2]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:129:34: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->reserved = &((uint32_t *)packet->buffer)[3]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/common/responder_packet.c:130:41: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] packet->body = (uint8_t *)&((uint32_t *)packet->buffer)[4]; ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/responder/pam/pamsrv_cmd.c:130:10: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] ((uint32_t *)body)[0] != SSS_START_OF_PAM_REQUEST || ^~~~~~~~~~~~~~~~
Fields changed
keywords: => clang easyfix
milestone: NEEDS_TRIAGE => SSSD 1.9.0 priority: major => minor
rhbz: => 0
owner: somebody => nguay
milestone: SSSD 1.9.0 => SSSD 1.9.1
owner: nguay => mzidek
milestone: SSSD 1.9.1 => SSSD 1.9.2
status: new => assigned
patch: 0 => 1
Too risky for 1.9, we'll commit the patch once we branch off 1.9 and 1.10.
milestone: SSSD 1.9.2 => SSSD 1.10 beta
selected: => Not need
Moving tickets that are not a priority for SSSD 1.10 into the next release.
milestone: SSSD 1.10 beta => SSSD 1.11 beta
changelog: => design: => design_review: => 0 fedora_test_page: => milestone: SSSD 1.13 beta => Interim Bucket priority: minor => critical review: => 0
milestone: Interim Bucket => SSSD 1.12 beta
Responder packets are now accessed using safealign macros: 7e09f93
Couple of other patches landed in master today:
One more patch landed in master: a171d77
PAM responder patch was also pushed: b7f4784
Client pointer alignment issues were fixed: 8bf65db
NSS responder issues were fixed: d8057ec
The last patch looks good on the list but shouldn't block beta1
milestone: SSSD 1.12 beta => SSSD 1.12 beta 2
More review is needed, there are some compilation warnings after the recent changes. There is no string change, so 1.12.0 is safe.
milestone: SSSD 1.12 beta 2 => SSSD 1.12.0
Last batch of patches landed upstream: - 0f495aa - 6844057 - 90ac46f
resolution: => fixed status: assigned => closed
Metadata Update from @jhrozek: - Issue assigned to mzidek - Issue set to the milestone: SSSD 1.12.0
SSSD is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in SSSD's github repository.
This issue has been cloned to Github and is available here: - https://github.com/SSSD/sssd/issues/2401
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Log in to comment on this ticket.