Skip to content

Commit 01cc6df

Browse files
authored
Merge pull request #5600 from martin-frbg/lapack1179
Fix out-of-bounds accesses in the LAPACK LIN tests (Reference-LAPACK PR 1179)
2 parents 05d7c18 + e776297 commit 01cc6df

File tree

4 files changed

+35
-35
lines changed

4 files changed

+35
-35
lines changed

lapack-netlib/TESTING/LIN/cerrtsqr.f

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ SUBROUTINE CERRTSQR( PATH, NUNIT )
7373
INTEGER I, INFO, J, MB, NB
7474
* ..
7575
* .. Local Arrays ..
76-
COMPLEX A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ),
77-
$ C( NMAX, NMAX ), TAU(NMAX)
76+
COMPLEX A( NMAX, NMAX ), W( NMAX ),
77+
$ C( NMAX, NMAX ), TAU( 5 )
7878
* ..
7979
* .. External Subroutines ..
8080
EXTERNAL ALAESM, CHKXER, CGEQR,
@@ -103,7 +103,6 @@ SUBROUTINE CERRTSQR( PATH, NUNIT )
103103
DO I = 1, NMAX
104104
A( I, J ) = 1.E0 / CMPLX( REAL( I+J ), 0.E0 )
105105
C( I, J ) = 1.E0 / CMPLX( REAL( I+J ), 0.E0 )
106-
T( I, J ) = 1.E0 / CMPLX( REAL( I+J ), 0.E0 )
107106
END DO
108107
W( J ) = 0.E0
109108
END DO
@@ -161,8 +160,9 @@ SUBROUTINE CERRTSQR( PATH, NUNIT )
161160
*
162161
* CGEMQR
163162
*
164-
TAU(1)=1
165-
TAU(2)=1
163+
DO I = 1, 5
164+
TAU( I ) = 1
165+
END DO
166166
SRNAMT = 'CGEMQR'
167167
NB=1
168168
INFOT = 1
@@ -251,8 +251,9 @@ SUBROUTINE CERRTSQR( PATH, NUNIT )
251251
*
252252
* CGEMLQ
253253
*
254-
TAU(1)=1
255-
TAU(2)=1
254+
DO I = 1, 5
255+
TAU( I ) = 1
256+
END DO
256257
SRNAMT = 'CGEMLQ'
257258
NB=1
258259
INFOT = 1

lapack-netlib/TESTING/LIN/derrtsqr.f

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ SUBROUTINE DERRTSQR( PATH, NUNIT )
7373
INTEGER I, INFO, J, MB, NB
7474
* ..
7575
* .. Local Arrays ..
76-
DOUBLE PRECISION A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ),
77-
$ C( NMAX, NMAX ), TAU(NMAX*2)
76+
DOUBLE PRECISION A( NMAX, NMAX ), W( NMAX ),
77+
$ C( NMAX, NMAX ), TAU( 5 )
7878
* ..
7979
* .. External Subroutines ..
8080
EXTERNAL ALAESM, CHKXER, DGEQR,
@@ -103,7 +103,6 @@ SUBROUTINE DERRTSQR( PATH, NUNIT )
103103
DO I = 1, NMAX
104104
A( I, J ) = 1.D0 / DBLE( I+J )
105105
C( I, J ) = 1.D0 / DBLE( I+J )
106-
T( I, J ) = 1.D0 / DBLE( I+J )
107106
END DO
108107
W( J ) = 0.D0
109108
END DO
@@ -161,10 +160,9 @@ SUBROUTINE DERRTSQR( PATH, NUNIT )
161160
*
162161
* DGEMQR
163162
*
164-
TAU(1)=1
165-
TAU(2)=1
166-
TAU(3)=1
167-
TAU(4)=1
163+
DO I = 1, 5
164+
TAU( I ) = 1
165+
END DO
168166
SRNAMT = 'DGEMQR'
169167
NB=1
170168
INFOT = 1
@@ -253,8 +251,9 @@ SUBROUTINE DERRTSQR( PATH, NUNIT )
253251
*
254252
* DGEMLQ
255253
*
256-
TAU(1)=1
257-
TAU(2)=1
254+
DO I = 1, 5
255+
TAU( I ) = 1
256+
END DO
258257
SRNAMT = 'DGEMLQ'
259258
NB=1
260259
INFOT = 1

lapack-netlib/TESTING/LIN/serrtsqr.f

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ SUBROUTINE SERRTSQR( PATH, NUNIT )
7373
INTEGER I, INFO, J, MB, NB
7474
* ..
7575
* .. Local Arrays ..
76-
REAL A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ),
77-
$ C( NMAX, NMAX ), TAU(NMAX*2)
76+
REAL A( NMAX, NMAX ), W( NMAX ),
77+
$ C( NMAX, NMAX ), TAU( 5 )
7878
* ..
7979
* .. External Subroutines ..
8080
EXTERNAL ALAESM, CHKXER, SGEQR,
@@ -101,11 +101,10 @@ SUBROUTINE SERRTSQR( PATH, NUNIT )
101101
*
102102
DO J = 1, NMAX
103103
DO I = 1, NMAX
104-
A( I, J ) = 1.D0 / REAL( I+J )
105-
C( I, J ) = 1.D0 / REAL( I+J )
106-
T( I, J ) = 1.D0 / REAL( I+J )
104+
A( I, J ) = 1. / REAL( I+J )
105+
C( I, J ) = 1. / REAL( I+J )
107106
END DO
108-
W( J ) = 0.D0
107+
W( J ) = 0.
109108
END DO
110109
OK = .TRUE.
111110
*
@@ -161,10 +160,9 @@ SUBROUTINE SERRTSQR( PATH, NUNIT )
161160
*
162161
* SGEMQR
163162
*
164-
TAU(1)=1
165-
TAU(2)=1
166-
TAU(3)=1
167-
TAU(4)=1
163+
DO I = 1, 5
164+
TAU( I ) = 1
165+
END DO
168166
SRNAMT = 'SGEMQR'
169167
NB=1
170168
INFOT = 1
@@ -253,8 +251,9 @@ SUBROUTINE SERRTSQR( PATH, NUNIT )
253251
*
254252
* SGEMLQ
255253
*
256-
TAU(1)=1
257-
TAU(2)=1
254+
DO I = 1, 5
255+
TAU( I ) = 1
256+
END DO
258257
SRNAMT = 'SGEMLQ'
259258
NB=1
260259
INFOT = 1

lapack-netlib/TESTING/LIN/zerrtsqr.f

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ SUBROUTINE ZERRTSQR( PATH, NUNIT )
7373
INTEGER I, INFO, J, MB, NB
7474
* ..
7575
* .. Local Arrays ..
76-
COMPLEX*16 A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ),
77-
$ C( NMAX, NMAX ), TAU(NMAX)
76+
COMPLEX*16 A( NMAX, NMAX ), W( NMAX ),
77+
$ C( NMAX, NMAX ), TAU( 5 )
7878
* ..
7979
* .. External Subroutines ..
8080
EXTERNAL ALAESM, CHKXER, ZGEQR,
@@ -103,7 +103,6 @@ SUBROUTINE ZERRTSQR( PATH, NUNIT )
103103
DO I = 1, NMAX
104104
A( I, J ) = 1.D0 / DBLE( I+J )
105105
C( I, J ) = 1.D0 / DBLE( I+J )
106-
T( I, J ) = 1.D0 / DBLE( I+J )
107106
END DO
108107
W( J ) = 0.D0
109108
END DO
@@ -161,8 +160,9 @@ SUBROUTINE ZERRTSQR( PATH, NUNIT )
161160
*
162161
* ZGEMQR
163162
*
164-
TAU(1)=1
165-
TAU(2)=1
163+
DO I = 1, 5
164+
TAU( I ) = 1
165+
END DO
166166
SRNAMT = 'ZGEMQR'
167167
NB=1
168168
INFOT = 1
@@ -251,8 +251,9 @@ SUBROUTINE ZERRTSQR( PATH, NUNIT )
251251
*
252252
* ZGEMLQ
253253
*
254-
TAU(1)=1
255-
TAU(2)=1
254+
DO I = 1, 5
255+
TAU( I ) = 1
256+
END DO
256257
SRNAMT = 'ZGEMLQ'
257258
NB=1
258259
INFOT = 1

0 commit comments

Comments
 (0)