Skip to content

Commit 98ebc8a

Browse files
authored
Add casts to prevent overflow of intermediate result
1 parent 904b221 commit 98ebc8a

File tree

7 files changed

+167
-167
lines changed

7 files changed

+167
-167
lines changed

ctest/c_cblas2.c

+22-22
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ void F77_cgemv(int *order, char *transp, int *m, int *n,
2020
get_transpose_type(transp, &trans);
2121
if (*order == TEST_ROW_MJR) {
2222
LDA = *n+1;
23-
A = (CBLAS_TEST_COMPLEX *)malloc( (*m)*LDA*sizeof( CBLAS_TEST_COMPLEX) );
23+
A = (CBLAS_TEST_COMPLEX *)malloc( (*m)*(size_t)LDA*sizeof( CBLAS_TEST_COMPLEX) );
2424
for( i=0; i<*m; i++ )
2525
for( j=0; j<*n; j++ ){
2626
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,
5050
get_transpose_type(transp, &trans);
5151
if (*order == TEST_ROW_MJR) {
5252
LDA = *ku+*kl+2;
53-
A=( CBLAS_TEST_COMPLEX* )malloc((*n+*kl)*LDA*sizeof(CBLAS_TEST_COMPLEX));
53+
A=( CBLAS_TEST_COMPLEX* )malloc((*n+*kl)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX));
5454
for( i=0; i<*ku; i++ ){
5555
irow=*ku+*kl-i;
5656
jcol=(*ku)-i;
@@ -94,7 +94,7 @@ void F77_cgeru(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha,
9494

9595
if (*order == TEST_ROW_MJR) {
9696
LDA = *n+1;
97-
A=(CBLAS_TEST_COMPLEX*)malloc((*m)*LDA*sizeof(CBLAS_TEST_COMPLEX));
97+
A=(CBLAS_TEST_COMPLEX*)malloc((*m)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX));
9898
for( i=0; i<*m; i++ )
9999
for( j=0; j<*n; j++ ){
100100
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,
122122

123123
if (*order == TEST_ROW_MJR) {
124124
LDA = *n+1;
125-
A=(CBLAS_TEST_COMPLEX* )malloc((*m)*LDA*sizeof(CBLAS_TEST_COMPLEX ) );
125+
A=(CBLAS_TEST_COMPLEX* )malloc((*m)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX ) );
126126
for( i=0; i<*m; i++ )
127127
for( j=0; j<*n; j++ ){
128128
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,
154154

155155
if (*order == TEST_ROW_MJR) {
156156
LDA = *n+1;
157-
A = (CBLAS_TEST_COMPLEX *)malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX));
157+
A = (CBLAS_TEST_COMPLEX *)malloc((*n)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX));
158158
for( i=0; i<*n; i++ )
159159
for( j=0; j<*n; j++ ){
160160
A[ LDA*i+j ].real=a[ (*lda)*j+i ].real;
@@ -190,7 +190,7 @@ int i,irow,j,jcol,LDA;
190190
*incx, beta, y, *incy );
191191
else {
192192
LDA = *k+2;
193-
A =(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_COMPLEX));
193+
A =(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX));
194194
if (uplo == CblasUpper) {
195195
for( i=0; i<*k; i++ ){
196196
irow=*k-i;
@@ -251,8 +251,8 @@ void F77_chpmv(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha,
251251
beta, y, *incy);
252252
else {
253253
LDA = *n;
254-
A = (CBLAS_TEST_COMPLEX* )malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ));
255-
AP = (CBLAS_TEST_COMPLEX* )malloc( (((LDA+1)*LDA)/2)*
254+
A = (CBLAS_TEST_COMPLEX* )malloc((size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ));
255+
AP = (CBLAS_TEST_COMPLEX* )malloc( ((((size_t)LDA+1)*LDA)/2)*
256256
sizeof( CBLAS_TEST_COMPLEX ));
257257
if (uplo == CblasUpper) {
258258
for( j=0, k=0; j<*n; j++ )
@@ -311,7 +311,7 @@ void F77_ctbmv(int *order, char *uplow, char *transp, char *diagn,
311311
x, *incx);
312312
else {
313313
LDA = *k+2;
314-
A=(CBLAS_TEST_COMPLEX *)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_COMPLEX));
314+
A=(CBLAS_TEST_COMPLEX *)malloc((*n+*k)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX));
315315
if (uplo == CblasUpper) {
316316
for( i=0; i<*k; i++ ){
317317
irow=*k-i;
@@ -375,7 +375,7 @@ void F77_ctbsv(int *order, char *uplow, char *transp, char *diagn,
375375
*incx);
376376
else {
377377
LDA = *k+2;
378-
A=(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_COMPLEX ));
378+
A=(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX ));
379379
if (uplo == CblasUpper) {
380380
for( i=0; i<*k; i++ ){
381381
irow=*k-i;
@@ -436,8 +436,8 @@ void F77_ctpmv(int *order, char *uplow, char *transp, char *diagn,
436436
cblas_ctpmv( CblasRowMajor, UNDEFINED, trans, diag, *n, ap, x, *incx );
437437
else {
438438
LDA = *n;
439-
A=(CBLAS_TEST_COMPLEX*)malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX));
440-
AP=(CBLAS_TEST_COMPLEX*)malloc((((LDA+1)*LDA)/2)*
439+
A=(CBLAS_TEST_COMPLEX*)malloc((size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX));
440+
AP=(CBLAS_TEST_COMPLEX*)malloc(((((size_t)LDA+1)*LDA)/2)*
441441
sizeof(CBLAS_TEST_COMPLEX));
442442
if (uplo == CblasUpper) {
443443
for( j=0, k=0; j<*n; j++ )
@@ -491,8 +491,8 @@ void F77_ctpsv(int *order, char *uplow, char *transp, char *diagn,
491491
cblas_ctpsv( CblasRowMajor, UNDEFINED, trans, diag, *n, ap, x, *incx );
492492
else {
493493
LDA = *n;
494-
A=(CBLAS_TEST_COMPLEX*)malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX));
495-
AP=(CBLAS_TEST_COMPLEX*)malloc((((LDA+1)*LDA)/2)*
494+
A=(CBLAS_TEST_COMPLEX*)malloc((size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX));
495+
AP=(CBLAS_TEST_COMPLEX*)malloc(((((size_t)LDA+1)*LDA)/2)*
496496
sizeof(CBLAS_TEST_COMPLEX));
497497
if (uplo == CblasUpper) {
498498
for( j=0, k=0; j<*n; j++ )
@@ -544,7 +544,7 @@ void F77_ctrmv(int *order, char *uplow, char *transp, char *diagn,
544544

545545
if (*order == TEST_ROW_MJR) {
546546
LDA=*n+1;
547-
A=(CBLAS_TEST_COMPLEX*)malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX));
547+
A=(CBLAS_TEST_COMPLEX*)malloc((*n)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX));
548548
for( i=0; i<*n; i++ )
549549
for( j=0; j<*n; j++ ) {
550550
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,
573573

574574
if (*order == TEST_ROW_MJR) {
575575
LDA = *n+1;
576-
A =(CBLAS_TEST_COMPLEX* )malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX ) );
576+
A =(CBLAS_TEST_COMPLEX* )malloc((*n)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX ) );
577577
for( i=0; i<*n; i++ )
578578
for( j=0; j<*n; j++ ) {
579579
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,
601601
cblas_chpr(CblasRowMajor, UNDEFINED, *n, *alpha, x, *incx, ap );
602602
else {
603603
LDA = *n;
604-
A = (CBLAS_TEST_COMPLEX* )malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) );
605-
AP = ( CBLAS_TEST_COMPLEX* )malloc( (((LDA+1)*LDA)/2)*
604+
A = (CBLAS_TEST_COMPLEX* )malloc((size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) );
605+
AP = ( CBLAS_TEST_COMPLEX* )malloc( ((((size_t)LDA+1)*LDA)/2)*
606606
sizeof( CBLAS_TEST_COMPLEX ));
607607
if (uplo == CblasUpper) {
608608
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,
678678
*incy, ap );
679679
else {
680680
LDA = *n;
681-
A=(CBLAS_TEST_COMPLEX*)malloc( LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) );
682-
AP=(CBLAS_TEST_COMPLEX*)malloc( (((LDA+1)*LDA)/2)*
681+
A=(CBLAS_TEST_COMPLEX*)malloc( (size_t)LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) );
682+
AP=(CBLAS_TEST_COMPLEX*)malloc( ((((size_t)LDA+1)*LDA)/2)*
683683
sizeof( CBLAS_TEST_COMPLEX ));
684684
if (uplo == CblasUpper) {
685685
for( j=0, k=0; j<*n; j++ )
@@ -750,7 +750,7 @@ void F77_cher(int *order, char *uplow, int *n, float *alpha,
750750

751751
if (*order == TEST_ROW_MJR) {
752752
LDA = *n+1;
753-
A=(CBLAS_TEST_COMPLEX*)malloc((*n)*LDA*sizeof( CBLAS_TEST_COMPLEX ));
753+
A=(CBLAS_TEST_COMPLEX*)malloc((*n)*(size_t)LDA*sizeof( CBLAS_TEST_COMPLEX ));
754754

755755
for( i=0; i<*n; i++ )
756756
for( j=0; j<*n; j++ ) {
@@ -784,7 +784,7 @@ void F77_cher2(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha,
784784

785785
if (*order == TEST_ROW_MJR) {
786786
LDA = *n+1;
787-
A= ( CBLAS_TEST_COMPLEX* )malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX ) );
787+
A= ( CBLAS_TEST_COMPLEX* )malloc((*n)*(size_t)LDA*sizeof(CBLAS_TEST_COMPLEX ) );
788788

789789
for( i=0; i<*n; i++ )
790790
for( j=0; j<*n; j++ ) {

ctest/c_dblas2.c

+21-21
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ void F77_dgemv(int *order, char *transp, int *m, int *n, double *alpha,
1919
get_transpose_type(transp, &trans);
2020
if (*order == TEST_ROW_MJR) {
2121
LDA = *n+1;
22-
A = ( double* )malloc( (*m)*LDA*sizeof( double ) );
22+
A = ( double* )malloc( (*m)*(size_t)LDA*sizeof( double ) );
2323
for( i=0; i<*m; i++ )
2424
for( j=0; j<*n; j++ )
2525
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,
4343

4444
if (*order == TEST_ROW_MJR) {
4545
LDA = *n+1;
46-
A = ( double* )malloc( (*m)*LDA*sizeof( double ) );
46+
A = ( double* )malloc( (*m)*(size_t)LDA*sizeof( double ) );
4747

4848
for( i=0; i<*m; i++ ) {
4949
for( j=0; j<*n; j++ )
@@ -74,7 +74,7 @@ void F77_dtrmv(int *order, char *uplow, char *transp, char *diagn,
7474

7575
if (*order == TEST_ROW_MJR) {
7676
LDA = *n+1;
77-
A = ( double* )malloc( (*n)*LDA*sizeof( double ) );
77+
A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) );
7878
for( i=0; i<*n; i++ )
7979
for( j=0; j<*n; j++ )
8080
A[ LDA*i+j ]=a[ (*lda)*j+i ];
@@ -102,7 +102,7 @@ void F77_dtrsv(int *order, char *uplow, char *transp, char *diagn,
102102

103103
if (*order == TEST_ROW_MJR) {
104104
LDA = *n+1;
105-
A = ( double* )malloc( (*n)*LDA*sizeof( double ) );
105+
A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) );
106106
for( i=0; i<*n; i++ )
107107
for( j=0; j<*n; j++ )
108108
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,
123123

124124
if (*order == TEST_ROW_MJR) {
125125
LDA = *n+1;
126-
A = ( double* )malloc( (*n)*LDA*sizeof( double ) );
126+
A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) );
127127
for( i=0; i<*n; i++ )
128128
for( j=0; j<*n; j++ )
129129
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,
146146

147147
if (*order == TEST_ROW_MJR) {
148148
LDA = *n+1;
149-
A = ( double* )malloc( (*n)*LDA*sizeof( double ) );
149+
A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) );
150150
for( i=0; i<*n; i++ )
151151
for( j=0; j<*n; j++ )
152152
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,
170170

171171
if (*order == TEST_ROW_MJR) {
172172
LDA = *n+1;
173-
A = ( double* )malloc( (*n)*LDA*sizeof( double ) );
173+
A = ( double* )malloc( (*n)*(size_t)LDA*sizeof( double ) );
174174
for( i=0; i<*n; i++ )
175175
for( j=0; j<*n; j++ )
176176
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,
196196

197197
if (*order == TEST_ROW_MJR) {
198198
LDA = *ku+*kl+2;
199-
A = ( double* )malloc( (*n+*kl)*LDA*sizeof( double ) );
199+
A = ( double* )malloc( (*n+*kl)*(size_t)LDA*sizeof( double ) );
200200
for( i=0; i<*ku; i++ ){
201201
irow=*ku+*kl-i;
202202
jcol=(*ku)-i;
@@ -236,7 +236,7 @@ void F77_dtbmv(int *order, char *uplow, char *transp, char *diagn,
236236

237237
if (*order == TEST_ROW_MJR) {
238238
LDA = *k+1;
239-
A = ( double* )malloc( (*n+*k)*LDA*sizeof( double ) );
239+
A = ( double* )malloc( (*n+*k)*(size_t)LDA*sizeof( double ) );
240240
if (uplo == CblasUpper) {
241241
for( i=0; i<*k; i++ ){
242242
irow=*k-i;
@@ -282,7 +282,7 @@ void F77_dtbsv(int *order, char *uplow, char *transp, char *diagn,
282282

283283
if (*order == TEST_ROW_MJR) {
284284
LDA = *k+1;
285-
A = ( double* )malloc( (*n+*k)*LDA*sizeof( double ) );
285+
A = ( double* )malloc( (*n+*k)*(size_t)LDA*sizeof( double ) );
286286
if (uplo == CblasUpper) {
287287
for( i=0; i<*k; i++ ){
288288
irow=*k-i;
@@ -325,7 +325,7 @@ void F77_dsbmv(int *order, char *uplow, int *n, int *k, double *alpha,
325325

326326
if (*order == TEST_ROW_MJR) {
327327
LDA = *k+1;
328-
A = ( double* )malloc( (*n+*k)*LDA*sizeof( double ) );
328+
A = ( double* )malloc( (*n+*k)*(size_t)LDA*sizeof( double ) );
329329
if (uplo == CblasUpper) {
330330
for( i=0; i<*k; i++ ){
331331
irow=*k-i;
@@ -369,8 +369,8 @@ void F77_dspmv(int *order, char *uplow, int *n, double *alpha, double *ap,
369369

370370
if (*order == TEST_ROW_MJR) {
371371
LDA = *n;
372-
A = ( double* )malloc( LDA*LDA*sizeof( double ) );
373-
AP = ( double* )malloc( (((LDA+1)*LDA)/2)*sizeof( double ) );
372+
A = ( double* )malloc( (size_t)LDA*LDA*sizeof( double ) );
373+
AP = ( double* )malloc( ((((size_t)LDA+1)*LDA)/2)*sizeof( double ) );
374374
if (uplo == CblasUpper) {
375375
for( j=0, k=0; j<*n; j++ )
376376
for( i=0; i<j+1; i++, k++ )
@@ -411,8 +411,8 @@ void F77_dtpmv(int *order, char *uplow, char *transp, char *diagn,
411411

412412
if (*order == TEST_ROW_MJR) {
413413
LDA = *n;
414-
A = ( double* )malloc( LDA*LDA*sizeof( double ) );
415-
AP = ( double* )malloc( (((LDA+1)*LDA)/2)*sizeof( double ) );
414+
A = ( double* )malloc( (size_t)LDA*LDA*sizeof( double ) );
415+
AP = ( double* )malloc( ((((size_t)LDA+1)*LDA)/2)*sizeof( double ) );
416416
if (uplo == CblasUpper) {
417417
for( j=0, k=0; j<*n; j++ )
418418
for( i=0; i<j+1; i++, k++ )
@@ -451,8 +451,8 @@ void F77_dtpsv(int *order, char *uplow, char *transp, char *diagn,
451451

452452
if (*order == TEST_ROW_MJR) {
453453
LDA = *n;
454-
A = ( double* )malloc( LDA*LDA*sizeof( double ) );
455-
AP = ( double* )malloc( (((LDA+1)*LDA)/2)*sizeof( double ) );
454+
A = ( double* )malloc( (size_t)LDA*LDA*sizeof( double ) );
455+
AP = ( double* )malloc( ((((size_t)LDA+1)*LDA)/2)*sizeof( double ) );
456456
if (uplo == CblasUpper) {
457457
for( j=0, k=0; j<*n; j++ )
458458
for( i=0; i<j+1; i++, k++ )
@@ -488,8 +488,8 @@ void F77_dspr(int *order, char *uplow, int *n, double *alpha, double *x,
488488

489489
if (*order == TEST_ROW_MJR) {
490490
LDA = *n;
491-
A = ( double* )malloc( LDA*LDA*sizeof( double ) );
492-
AP = ( double* )malloc( (((LDA+1)*LDA)/2)*sizeof( double ) );
491+
A = ( double* )malloc( (size_t)LDA*LDA*sizeof( double ) );
492+
AP = ( double* )malloc( ((((size_t)LDA+1)*LDA)/2)*sizeof( double ) );
493493
if (uplo == CblasUpper) {
494494
for( j=0, k=0; j<*n; j++ )
495495
for( i=0; i<j+1; i++, k++ )
@@ -540,8 +540,8 @@ void F77_dspr2(int *order, char *uplow, int *n, double *alpha, double *x,
540540

541541
if (*order == TEST_ROW_MJR) {
542542
LDA = *n;
543-
A = ( double* )malloc( LDA*LDA*sizeof( double ) );
544-
AP = ( double* )malloc( (((LDA+1)*LDA)/2)*sizeof( double ) );
543+
A = ( double* )malloc( (size_t)LDA*LDA*sizeof( double ) );
544+
AP = ( double* )malloc( ((((size_t)LDA+1)*LDA)/2)*sizeof( double ) );
545545
if (uplo == CblasUpper) {
546546
for( j=0, k=0; j<*n; j++ )
547547
for( i=0; i<j+1; i++, k++ )

0 commit comments

Comments
 (0)