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
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Reply via email to