diff --git a/src/common/xmalloc.c b/src/common/xmalloc.c
index 07adc8fc5bfe527b5332b72f4f3b342d0a1f248b..b8c9370b76763400ee50ffb6ae5624ca079d5b6a 100644
--- a/src/common/xmalloc.c
+++ b/src/common/xmalloc.c
@@ -76,6 +76,7 @@ void *slurm_xcalloc(size_t count, size_t size, bool clear, bool try,
 		    const char *file, int line, const char *func)
 {
 	size_t total_size;
+	size_t count_size;
 	size_t *p;
 
 	if (!size || !count)
@@ -97,7 +98,8 @@ void *slurm_xcalloc(size_t count, size_t size, bool clear, bool try,
 		abort();
 	}
 
-	total_size = count * size + 2 * sizeof(size_t);
+	count_size = count * size;
+	total_size = count_size + 2 * sizeof(size_t);
 
 	if (clear)
 		p = calloc(1, total_size);
@@ -112,7 +114,7 @@ void *slurm_xcalloc(size_t count, size_t size, bool clear, bool try,
 		abort();
 	}
 	p[0] = XMALLOC_MAGIC;	/* add "secret" magic cookie */
-	p[1] = size;		/* store size in buffer */
+	p[1] = count_size;	/* store size in buffer */
 
 	return &p[2];
 }