@cryptotaxi247 / netdata-1 / commits / e81d0f18a

Align cmsgbuf to size_t to avoid unaligned memory access. (#19917)

vkalintiris committed Mar 20, 2025 at 15:50 UTC e81d0f18a882361733bc1ed960ae1f5d0c94e4b6
1 file changed +3 -3
src/libnetdata/spawn_server/spawn_server_nofork.c
+3 -3
@@ -443,7 +443,7 @@ static bool spawn_server_is_running(const char *path) {
443 size_t dummy_size = 0;
444 SPAWN_INSTANCE_TYPE dummy_type = 0;
445 ND_UUID magic = UUID_ZERO;
446 - char cmsgbuf[CMSG_SPACE(sizeof(int))];
446 + char cmsgbuf[CMSG_SPACE(sizeof(int))] __attribute__((aligned(sizeof(size_t))));
447
448 iov[0].iov_base = &msg_type;
449 iov[0].iov_len = sizeof(msg_type);
@@ -506,7 +506,7 @@ static bool spawn_server_send_request(ND_UUID *magic, SPAWN_REQUEST *request) {
506 struct msghdr msg = {0};
507 struct cmsghdr *cmsg;
508 SPAWN_SERVER_MSG msg_type = SPAWN_SERVER_MSG_REQUEST;
509 - char cmsgbuf[CMSG_SPACE(sizeof(int) * SPAWN_SERVER_TRANSFER_FDS)];
509 + char cmsgbuf[CMSG_SPACE(sizeof(int) * SPAWN_SERVER_TRANSFER_FDS)] __attribute__((aligned(sizeof(size_t))));
510 struct iovec iov[11];
511
512 // We send 1 request with 10 iovec in it
@@ -587,7 +587,7 @@ static void spawn_server_receive_request(int sock, SPAWN_SERVER *server) {
587 size_t data_size;
588 ND_UUID magic = UUID_ZERO;
589 SPAWN_INSTANCE_TYPE type;
590 - char cmsgbuf[CMSG_SPACE(sizeof(int) * SPAWN_SERVER_TRANSFER_FDS)];
590 + char cmsgbuf[CMSG_SPACE(sizeof(int) * SPAWN_SERVER_TRANSFER_FDS)] __attribute__((aligned(sizeof(size_t))));
591 char *envp_encoded = NULL, *argv_encoded = NULL, *data = NULL;
592 int stdin_fd = -1, stdout_fd = -1, stderr_fd = -1, custom_fd = -1;
593