Package: rsyslog Version: 7.4.4-1 Tags: patch rsyslog emits lots of warnings when it runs on the hppa platform: [30191.672000] handle_unaligned: 61 callbacks suppressed [30191.672000] in:imuxsock(1963): unaligned access to 0x0000000043765a09 at ip=0x000000004255bbcb [30191.676000] in:imuxsock(1963): unaligned access to 0x0000000043765a0d at ip=0x000000004255bbeb
Those warnings can be eliminated with the attached patch, which ensures that the values are copied to an aligned struct before usage. It would be nice if you could apply this patch. Helge
diff -up rsyslog-7.4.4/plugins/imuxsock/imuxsock.c.org rsyslog-7.4.4/plugins/imuxsock/imuxsock.c --- rsyslog-7.4.4/plugins/imuxsock/imuxsock.c.org 2013-12-11 15:21:07.956000000 -0700 +++ rsyslog-7.4.4/plugins/imuxsock/imuxsock.c 2013-12-11 15:21:15.396000000 -0700 @@ -949,8 +949,8 @@ static rsRetVal readSocket(lstn_t *pLstn struct msghdr msgh; struct iovec msgiov; struct cmsghdr *cm; - struct ucred *cred; - struct timeval *ts; + struct ucred cred_vals, *cred; + struct timeval time_vals, *ts; uchar bufRcv[4096+1]; uchar *pRcv = NULL; /* receive buffer */ # if HAVE_SCM_CREDENTIALS @@ -997,13 +997,13 @@ static rsRetVal readSocket(lstn_t *pLstn # if HAVE_SCM_CREDENTIALS if( pLstn->bUseCreds && cm->cmsg_level == SOL_SOCKET && cm->cmsg_type == SCM_CREDENTIALS) { - cred = (struct ucred*) CMSG_DATA(cm); + cred = memcpy(&cred_vals, &CMSG_DATA(cm), sizeof(struct ucred)); } # endif /* HAVE_SCM_CREDENTIALS */ # if HAVE_SO_TIMESTAMP if( pLstn->bUseSysTimeStamp && cm->cmsg_level == SOL_SOCKET && cm->cmsg_type == SO_TIMESTAMP) { - ts = (struct timeval *)CMSG_DATA(cm); + ts = memcpy(&time_vals, &CMSG_DATA(cm), sizeof(struct timeval)); } # endif /* HAVE_SO_TIMESTAMP */ }