This commit ensures that slurmctld does not segfault in
delete_resv() when a NULL string was provided as part of
the RPC:
We also fix a mistake in the slurm API documentation related
to the unit of the duration member of resv_desc_msg.
---
slurm/slurm.h.in | 2 +-
src/slurmctld/proc_req.c | 10 ++++++++--
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index e708883..15776fa 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -2234,7 +2234,7 @@ typedef struct resv_desc_msg {
char *accounts; /* names of accounts permitted to use */
char *burst_buffer; /* burst buffer resources to be included */
uint32_t *core_cnt; /* Count of cores required */
- uint32_t duration; /* duration of reservation in seconds */
+ uint32_t duration; /* duration of reservation in minutes */
time_t end_time; /* end time of reservation */
char *features; /* required node features */
uint32_t flags; /* see RESERVE_FLAG_* above */
diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c
index d0b5083..955c730 100644
--- a/src/slurmctld/proc_req.c
+++ b/src/slurmctld/proc_req.c
@@ -3971,10 +3971,16 @@ static void _slurm_rpc_resv_delete(slurm_msg_t * msg)
uid_t uid = g_slurm_auth_get_uid(msg->auth_cred, NULL);
START_TIMER;
- debug2("Processing RPC: REQUEST_DELETE_RESERVTION from uid=%d", uid);
+ debug2("Processing RPC: REQUEST_DELETE_RESERVATION from uid=%d", uid);
if (!validate_operator(uid)) {
error_code = ESLURM_USER_ID_MISSING;
- error("Security violation, DELETE_RESERVTION RPC from uid=%d",
+ error("Security violation, DELETE_RESERVATION RPC from uid=%d",
+ uid);
+ }
+
+ if (!resv_desc_ptr->name) {
+ error_code = ESLURM_INVALID_PARTITION_NAME;
+ error("Invalid DELETE_RESERVATION RPC from uid=%d, name is
null",
uid);
}
--
1.8.3.1
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------