diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index 81203c2ab6faa98a86b8a35ccffa1ffc11c9701d..cd42996e44f4a24734ce7c39b49c4e52f9bd0667 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -5391,8 +5391,9 @@ _unpack_job_info_msg(job_info_msg_t ** msg, Buf buffer,
 		safe_unpack32(&((*msg)->record_count), buffer);
 		safe_unpack_time(&((*msg)->last_update), buffer);
 
-		job = (*msg)->job_array = xmalloc(sizeof(job_info_t) *
-						  (*msg)->record_count);
+		if ((*msg)->record_count)
+			job = (*msg)->job_array = xmalloc(sizeof(job_info_t) *
+							  (*msg)->record_count);
 		/* load individual job info */
 		for (i = 0; i < (*msg)->record_count; i++) {
 			if (_unpack_job_info_members(&job[i], buffer,