diff --git a/src/plugins/mpi/pmi2/agent.c b/src/plugins/mpi/pmi2/agent.c
index 4e80dd4ee569620654cb097831ae81866bad73c2..843d4fe7441b33395ea0e0862c9ee7fbc6f601b4 100644
--- a/src/plugins/mpi/pmi2/agent.c
+++ b/src/plugins/mpi/pmi2/agent.c
@@ -258,7 +258,7 @@ _handle_pmi1_init(int fd, int lrank)
 	debug3("mpi/pmi2: in _handle_pmi1_init");
 
 	while ( (n = read(fd, buf, 64)) < 0 && errno == EINTR);
-	if (n < 0) {
+	if ((n < 0) || (n >= 64)) {
 		error("mpi/pmi2: failed to read PMI1 init command");
 		return SLURM_ERROR;
 	}