From 9a3b84d90df7df399723d4654a75781b3f03dd87 Mon Sep 17 00:00:00 2001
From: Philippe SWARTVAGHER <philippe.swartvagher@inria.fr>
Date: Thu, 25 Aug 2022 16:50:34 +0200
Subject: [PATCH] Check return value of mallocs in check_zmatrices() and
 prevent overflows

---
 testing/testing_zcheck_aux.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/testing/testing_zcheck_aux.c b/testing/testing_zcheck_aux.c
index ef29507c0..21069c62b 100644
--- a/testing/testing_zcheck_aux.c
+++ b/testing/testing_zcheck_aux.c
@@ -162,8 +162,11 @@ int check_zmatrices( run_arg_list_t *args, cham_uplo_t uplo, CHAM_desc_t *descA,
     CHAMELEON_Complex64_t *B = NULL;
 
     if ( rank == 0 ) {
-        A = (CHAMELEON_Complex64_t *)malloc(LDA*N*sizeof(CHAMELEON_Complex64_t));
-        B = (CHAMELEON_Complex64_t *)malloc(LDB*N*sizeof(CHAMELEON_Complex64_t));
+        A = (CHAMELEON_Complex64_t *)malloc((size_t)(LDA) * (size_t)(N) * sizeof(CHAMELEON_Complex64_t));
+        B = (CHAMELEON_Complex64_t *)malloc((size_t)(LDB) * (size_t)(N) * sizeof(CHAMELEON_Complex64_t));
+        if ( (A == NULL) || (B == NULL) ) {
+            return CHAMELEON_ERR_OUT_OF_RESOURCES;
+        }
     }
 
     /* Converts the matrices to LAPACK layout in order to compare them on the main process */
-- 
GitLab