diff --git a/src/scontrol/info_job.c b/src/scontrol/info_job.c index ce4aa3ce01fe1155b06ba0f273301ab4e61c772e..f97b6ea6345c8f45625804f85fab816712f266e0 100644 --- a/src/scontrol/info_job.c +++ b/src/scontrol/info_job.c @@ -751,8 +751,10 @@ extern void scontrol_getent(const char *node_name) pwd = stepd_getpw(fd, stepd->protocol_version, GETPW_MATCH_ALWAYS, 0, NULL); - if (!pwd) + if (!pwd) { + close(fd); continue; + } if (stepd->stepid == SLURM_EXTERN_CONT) printf("JobId=%u.Extern:\nUser:\n", stepd->jobid); @@ -771,6 +773,7 @@ extern void scontrol_getent(const char *node_name) grps = stepd_getgr(fd, stepd->protocol_version, GETGR_MATCH_ALWAYS, 0, NULL); if (!grps) { + close(fd); printf("\n"); continue; } @@ -781,6 +784,7 @@ extern void scontrol_getent(const char *node_name) grps[i]->gr_gid, (grps[i]->gr_mem) ? grps[i]->gr_mem[0] : ""); } + close(fd); xfree_struct_group_array(grps); printf("\n"); }