From 98ebc8ac5987af4ef44618d95e34ae122ec24c20 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 1 May 2021 14:48:19 +0200 Subject: [PATCH] Add casts to prevent overflow of intermediate result --- ctest/c_cblas2.c | 44 +++++++++++++++--------------- ctest/c_dblas2.c | 42 ++++++++++++++--------------- ctest/c_dblas3.c | 46 +++++++++++++++---------------- ctest/c_sblas2.c | 42 ++++++++++++++--------------- ctest/c_sblas3.c | 46 +++++++++++++++---------------- ctest/c_zblas2.c | 44 +++++++++++++++--------------- ctest/c_zblas3.c | 70 ++++++++++++++++++++++++------------------------ 7 files changed, 167 insertions(+), 167 deletions(-) diff --git a/ctest/c_cblas2.c b/ctest/c_cblas2.c index 057096f32..6511e5271 100644 --- a/ctest/c_cblas2.c +++ b/ctest/c_cblas2.c @@ -20,7 +20,7 @@ void F77_cgemv(int *order, char *transp, int *m, int *n, get_transpose_type(transp, &trans); if (*order == TEST_ROW_MJR) { LDA = *n+1; - A = (CBLAS_TEST_COMPLEX *)malloc( (*m)*LDA*sizeof( CBLAS_TEST_COMPLEX) ); + A = (CBLAS_TEST_COMPLEX *)malloc( (*m)*(size_t)LDA*sizeof( CBLAS_TEST_COMPLEX) ); for( i=0; i<*m; i++ ) for( j=0; j<*n; j++ ){ A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; @@ -50,7 +50,7 @@ void F77_cgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku, get_transpose_type(transp, &trans); if (*order == TEST_ROW_MJR) { LDA = *ku+*kl+2; - A=( CBLAS_TEST_COMPLEX* )malloc((*n+*kl)*LDA*sizeof(CBLAS_TEST_COMPLEX)); + A=( CBLAS_TEST_COMPLEX* )malloc((*n+*kl)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX)); for( i=0; i<*ku; i++ ){ irow=*ku+*kl-i; jcol=(*ku)-i; @@ -94,7 +94,7 @@ void F77_cgeru(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A=(CBLAS_TEST_COMPLEX*)malloc((*m)*LDA*sizeof(CBLAS_TEST_COMPLEX)); + A=(CBLAS_TEST_COMPLEX*)malloc((*m)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX)); for( i=0; i<*m; i++ ) for( j=0; j<*n; j++ ){ A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; @@ -122,7 +122,7 @@ void F77_cgerc(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A=(CBLAS_TEST_COMPLEX* )malloc((*m)*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); + A=(CBLAS_TEST_COMPLEX* )malloc((*m)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX ) ); for( i=0; i<*m; i++ ) for( j=0; j<*n; j++ ){ A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; @@ -154,7 +154,7 @@ void F77_chemv(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A = (CBLAS_TEST_COMPLEX *)malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX)); + A = (CBLAS_TEST_COMPLEX *)malloc((*n)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX)); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ){ A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; @@ -190,7 +190,7 @@ int i,irow,j,jcol,LDA; *incx, beta, y, *incy ); else { LDA = *k+2; - A =(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_COMPLEX)); + A =(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX)); if (uplo == CblasUpper) { for( i=0; i<*k; i++ ){ irow=*k-i; @@ -251,8 +251,8 @@ void F77_chpmv(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha, beta, y, *incy); else { LDA = *n; - A = (CBLAS_TEST_COMPLEX* )malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX )); - AP = (CBLAS_TEST_COMPLEX* )malloc( (((LDA+1)*LDA)/2)* + A = (CBLAS_TEST_COMPLEX* )malloc((size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX )); + AP = (CBLAS_TEST_COMPLEX* )malloc( ((((size_t)LDA+1)*LDA)/2)* sizeof( CBLAS_TEST_COMPLEX )); if (uplo == CblasUpper) { for( j=0, k=0; j<*n; j++ ) @@ -311,7 +311,7 @@ void F77_ctbmv(int *order, char *uplow, char *transp, char *diagn, x, *incx); else { LDA = *k+2; - A=(CBLAS_TEST_COMPLEX *)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_COMPLEX)); + A=(CBLAS_TEST_COMPLEX *)malloc((*n+*k)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX)); if (uplo == CblasUpper) { for( i=0; i<*k; i++ ){ irow=*k-i; @@ -375,7 +375,7 @@ void F77_ctbsv(int *order, char *uplow, char *transp, char *diagn, *incx); else { LDA = *k+2; - A=(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_COMPLEX )); + A=(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX )); if (uplo == CblasUpper) { for( i=0; i<*k; i++ ){ irow=*k-i; @@ -436,8 +436,8 @@ void F77_ctpmv(int *order, char *uplow, char *transp, char *diagn, cblas_ctpmv( CblasRowMajor, UNDEFINED, trans, diag, *n, ap, x, *incx ); else { LDA = *n; - A=(CBLAS_TEST_COMPLEX*)malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX)); - AP=(CBLAS_TEST_COMPLEX*)malloc((((LDA+1)*LDA)/2)* + A=(CBLAS_TEST_COMPLEX*)malloc((size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX)); + AP=(CBLAS_TEST_COMPLEX*)malloc(((((size_t)LDA+1)*LDA)/2)* sizeof(CBLAS_TEST_COMPLEX)); if (uplo == CblasUpper) { for( j=0, k=0; j<*n; j++ ) @@ -491,8 +491,8 @@ void F77_ctpsv(int *order, char *uplow, char *transp, char *diagn, cblas_ctpsv( CblasRowMajor, UNDEFINED, trans, diag, *n, ap, x, *incx ); else { LDA = *n; - A=(CBLAS_TEST_COMPLEX*)malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX)); - AP=(CBLAS_TEST_COMPLEX*)malloc((((LDA+1)*LDA)/2)* + A=(CBLAS_TEST_COMPLEX*)malloc((size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX)); + AP=(CBLAS_TEST_COMPLEX*)malloc(((((size_t)LDA+1)*LDA)/2)* sizeof(CBLAS_TEST_COMPLEX)); if (uplo == CblasUpper) { for( j=0, k=0; j<*n; j++ ) @@ -544,7 +544,7 @@ void F77_ctrmv(int *order, char *uplow, char *transp, char *diagn, if (*order == TEST_ROW_MJR) { LDA=*n+1; - A=(CBLAS_TEST_COMPLEX*)malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX)); + A=(CBLAS_TEST_COMPLEX*)malloc((*n)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX)); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ) { A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; @@ -573,7 +573,7 @@ void F77_ctrsv(int *order, char *uplow, char *transp, char *diagn, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A =(CBLAS_TEST_COMPLEX* )malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); + A =(CBLAS_TEST_COMPLEX* )malloc((*n)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX ) ); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ) { A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; @@ -601,8 +601,8 @@ void F77_chpr(int *order, char *uplow, int *n, float *alpha, cblas_chpr(CblasRowMajor, UNDEFINED, *n, *alpha, x, *incx, ap ); else { LDA = *n; - A = (CBLAS_TEST_COMPLEX* )malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); - AP = ( CBLAS_TEST_COMPLEX* )malloc( (((LDA+1)*LDA)/2)* + A = (CBLAS_TEST_COMPLEX* )malloc((size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); + AP = ( CBLAS_TEST_COMPLEX* )malloc( ((((size_t)LDA+1)*LDA)/2)* sizeof( CBLAS_TEST_COMPLEX )); if (uplo == CblasUpper) { for( j=0, k=0; j<*n; j++ ) @@ -678,8 +678,8 @@ void F77_chpr2(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha, *incy, ap ); else { LDA = *n; - A=(CBLAS_TEST_COMPLEX*)malloc( LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); - AP=(CBLAS_TEST_COMPLEX*)malloc( (((LDA+1)*LDA)/2)* + A=(CBLAS_TEST_COMPLEX*)malloc( (size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); + AP=(CBLAS_TEST_COMPLEX*)malloc( ((((size_t)LDA+1)*LDA)/2)* sizeof( CBLAS_TEST_COMPLEX )); if (uplo == CblasUpper) { for( j=0, k=0; j<*n; j++ ) @@ -750,7 +750,7 @@ void F77_cher(int *order, char *uplow, int *n, float *alpha, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A=(CBLAS_TEST_COMPLEX*)malloc((*n)*LDA*sizeof( CBLAS_TEST_COMPLEX )); + A=(CBLAS_TEST_COMPLEX*)malloc((*n)*(size_t)LDA*sizeof( CBLAS_TEST_COMPLEX )); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ) { @@ -784,7 +784,7 @@ void F77_cher2(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A= ( CBLAS_TEST_COMPLEX* )malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); + A= ( CBLAS_TEST_COMPLEX* )malloc((*n)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX ) ); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ) { diff --git a/ctest/c_dblas2.c b/ctest/c_dblas2.c index 423a58748..ae3854c0e 100644 --- a/ctest/c_dblas2.c +++ b/ctest/c_dblas2.c @@ -19,7 +19,7 @@ void F77_dgemv(int *order, char *transp, int *m, int *n, double *alpha, get_transpose_type(transp, &trans); if (*order == TEST_ROW_MJR) { LDA = *n+1; - A = ( double* )malloc( (*m)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*m)*(size_t)LDA*sizeof( double ) ); for( i=0; i<*m; i++ ) for( j=0; j<*n; j++ ) A[ LDA*i+j ]=a[ (*lda)*j+i ]; @@ -43,7 +43,7 @@ void F77_dger(int *order, int *m, int *n, double *alpha, double *x, int *incx, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A = ( double* )malloc( (*m)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*m)*(size_t)LDA*sizeof( double ) ); for( i=0; i<*m; i++ ) { for( j=0; j<*n; j++ ) @@ -74,7 +74,7 @@ void F77_dtrmv(int *order, char *uplow, char *transp, char *diagn, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A = ( double* )malloc( (*n)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) ); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ) A[ LDA*i+j ]=a[ (*lda)*j+i ]; @@ -102,7 +102,7 @@ void F77_dtrsv(int *order, char *uplow, char *transp, char *diagn, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A = ( double* )malloc( (*n)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) ); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ) A[ LDA*i+j ]=a[ (*lda)*j+i ]; @@ -123,7 +123,7 @@ void F77_dsymv(int *order, char *uplow, int *n, double *alpha, double *a, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A = ( double* )malloc( (*n)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) ); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ) A[ LDA*i+j ]=a[ (*lda)*j+i ]; @@ -146,7 +146,7 @@ void F77_dsyr(int *order, char *uplow, int *n, double *alpha, double *x, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A = ( double* )malloc( (*n)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) ); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ) A[ LDA*i+j ]=a[ (*lda)*j+i ]; @@ -170,7 +170,7 @@ void F77_dsyr2(int *order, char *uplow, int *n, double *alpha, double *x, if (*order == TEST_ROW_MJR) { LDA = *n+1; - A = ( double* )malloc( (*n)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) ); for( i=0; i<*n; i++ ) for( j=0; j<*n; j++ ) A[ LDA*i+j ]=a[ (*lda)*j+i ]; @@ -196,7 +196,7 @@ void F77_dgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku, if (*order == TEST_ROW_MJR) { LDA = *ku+*kl+2; - A = ( double* )malloc( (*n+*kl)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*n+*kl)*(size_t)LDA*sizeof( double ) ); for( i=0; i<*ku; i++ ){ irow=*ku+*kl-i; jcol=(*ku)-i; @@ -236,7 +236,7 @@ void F77_dtbmv(int *order, char *uplow, char *transp, char *diagn, if (*order == TEST_ROW_MJR) { LDA = *k+1; - A = ( double* )malloc( (*n+*k)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*n+*k)*(size_t)LDA*sizeof( double ) ); if (uplo == CblasUpper) { for( i=0; i<*k; i++ ){ irow=*k-i; @@ -282,7 +282,7 @@ void F77_dtbsv(int *order, char *uplow, char *transp, char *diagn, if (*order == TEST_ROW_MJR) { LDA = *k+1; - A = ( double* )malloc( (*n+*k)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*n+*k)*(size_t)LDA*sizeof( double ) ); if (uplo == CblasUpper) { for( i=0; i<*k; i++ ){ irow=*k-i; @@ -325,7 +325,7 @@ void F77_dsbmv(int *order, char *uplow, int *n, int *k, double *alpha, if (*order == TEST_ROW_MJR) { LDA = *k+1; - A = ( double* )malloc( (*n+*k)*LDA*sizeof( double ) ); + A = ( double* )malloc( (*n+*k)*(size_t)LDA*sizeof( double ) ); if (uplo == CblasUpper) { for( i=0; i<*k; i++ ){ irow=*k-i; @@ -369,8 +369,8 @@ void F77_dspmv(int *order, char *uplow, int *n, double *alpha, double *ap, if (*order == TEST_ROW_MJR) { LDA = *n; - A = ( double* )malloc( LDA*LDA*sizeof( double ) ); - AP = ( double* )malloc( (((LDA+1)*LDA)/2)*sizeof( double ) ); + A = ( double* )malloc( (size_t)LDA*LDA*sizeof( double ) ); + AP = ( double* )malloc( ((((size_t)LDA+1)*LDA)/2)*sizeof( double ) ); if (uplo == CblasUpper) { for( j=0, k=0; j<*n; j++ ) for( i=0; i