32 lines
1.1 KiB
C
32 lines
1.1 KiB
C
--- src/plugins/auth/slurm/sack.c.orig 2026-06-09 20:26:02 UTC
|
|
+++ src/plugins/auth/slurm/sack.c
|
|
@@ -43,6 +43,7 @@
|
|
#include "slurm/slurm.h"
|
|
#include "slurm/slurm_errno.h"
|
|
#include "src/common/slurm_xlator.h"
|
|
+#include "src/common/slurm_sockaddr.h"
|
|
|
|
#include "src/common/env.h"
|
|
#include "src/common/fd.h"
|
|
@@ -301,6 +302,7 @@ extern void init_sack_conmgr(void)
|
|
char *runtime_dir = NULL, *runtime_socket = NULL;
|
|
slurm_addr_t addr = {0};
|
|
mode_t mask;
|
|
+ socklen_t bind_len = 0;
|
|
|
|
if (running_in_slurmctld()) {
|
|
_prepare_run_dir("slurmctld", true);
|
|
@@ -339,9 +341,9 @@ extern void init_sack_conmgr(void)
|
|
/* set value of socket path */
|
|
mask = umask(0);
|
|
|
|
- /* bind() will EINVAL if socklen=sizeof(addr) */
|
|
- if ((rc = bind(sack_fd, (const struct sockaddr *) &addr,
|
|
- sizeof(struct sockaddr_un))))
|
|
+ bind_len = slurm_sockaddr_fixlen((struct sockaddr *)&addr,
|
|
+ sizeof(struct sockaddr_un));
|
|
+ if ((rc = bind(sack_fd, (const struct sockaddr *) &addr, bind_len)))
|
|
fatal("%s: [%pA] Unable to bind UNIX socket: %m",
|
|
__func__, &addr);
|
|
umask(mask);
|