diff --git a/client.c b/client.c index e136181..f365f39 100644 --- a/client.c +++ b/client.c @@ -2030,7 +2030,7 @@ get_source_name(IPAddr *ip_addr, char *buf, int size) /* Make sure the name is printable */ for (i = 0; i < size && buf[i] != '\0'; i++) { - if (!isgraph(buf[i])) + if (!isgraph((unsigned char)buf[i])) return 0; } diff --git a/clientlog.c b/clientlog.c index d19c54e..5de9683 100644 --- a/clientlog.c +++ b/clientlog.c @@ -169,7 +169,7 @@ compare_total_hits(Record *x, Record *y) static Record * get_record(IPAddr *ip) { - uint32_t last_hit, oldest_hit = 0; + uint32_t last_hit = 0, oldest_hit = 0; Record *record, *oldest_record; unsigned int first, i, j; diff --git a/ntp_sources.c b/ntp_sources.c index 6e16e12..122f5e4 100644 --- a/ntp_sources.c +++ b/ntp_sources.c @@ -671,7 +671,7 @@ NSR_AddSourceByName(char *name, int port, int pool, NTP_Source_Type type, /* Make sure the name is at least printable and has no spaces */ for (i = 0; name[i] != '\0'; i++) { - if (!isgraph(name[i])) + if (!isgraph((unsigned char)name[i])) return NSR_InvalidName; } diff --git a/nts_ke_client.c b/nts_ke_client.c index fbde1dd..7eec3e2 100644 --- a/nts_ke_client.c +++ b/nts_ke_client.c @@ -196,7 +196,7 @@ process_response(NKC_Instance inst) inst->server_name[length] = '\0'; /* Make sure the name is printable and has no spaces */ - for (i = 0; i < length && isgraph(inst->server_name[i]); i++) + for (i = 0; i < length && isgraph((unsigned char)inst->server_name[i]); i++) ; if (i != length) { DEBUG_LOG("Invalid server name"); diff --git a/socket.c b/socket.c index e67b331..3551228 100644 --- a/socket.c +++ b/socket.c @@ -884,14 +884,16 @@ process_header(struct msghdr *msg, int msg_length, int sock_fd, int flags, if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_RIGHTS) { if (!(flags & SCK_FLAG_MSG_DESCRIPTOR) || cmsg->cmsg_len != CMSG_LEN(sizeof (int))) { - unsigned int i; + int i, fd; DEBUG_LOG("Unexpected SCM_RIGHTS"); - for (i = 0; CMSG_LEN((i + 1) * sizeof (int)) <= cmsg->cmsg_len; i++) - close(((int *)CMSG_DATA(cmsg))[i]); + for (i = 0; CMSG_LEN((i + 1) * sizeof (int)) <= cmsg->cmsg_len; i++) { + memcpy(&fd, (char *)CMSG_DATA(cmsg) + i * sizeof (int), sizeof (fd)); + close(fd); + } r = 0; } else { - message->descriptor = *(int *)CMSG_DATA(cmsg); + memcpy(&message->descriptor, CMSG_DATA(cmsg), sizeof (message->descriptor)); } } }