Skip to content

Commit fd138de

Browse files
authored
Merge pull request #1129 from martin-frbg/issue1128
Avoid memory corruption with non-finite inputs in ?GEEV
2 parents 8b24458 + d724843 commit fd138de

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

SRC/cgeev.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR,
496496
* Undo scaling if necessary
497497
*
498498
50 CONTINUE
499-
IF( SCALEA ) THEN
499+
IF( SCALEA .AND. INFO.GE.0) THEN
500500
CALL CLASCL( 'G', 0, 0, CSCALE, ANRM, N-INFO, 1,
501501
$ W( INFO+1 ),
502502
$ MAX( N-INFO, 1 ), IERR )

SRC/dgeev.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ SUBROUTINE DGEEV( JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL,
517517
* Undo scaling if necessary
518518
*
519519
50 CONTINUE
520-
IF( SCALEA ) THEN
520+
IF( SCALEA .AND. INFO.GE.0 ) THEN
521521
CALL DLASCL( 'G', 0, 0, CSCALE, ANRM, N-INFO, 1,
522522
$ WR( INFO+1 ),
523523
$ MAX( N-INFO, 1 ), IERR )

SRC/sgeev.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ SUBROUTINE SGEEV( JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL,
519519
* Undo scaling if necessary
520520
*
521521
50 CONTINUE
522-
IF( SCALEA ) THEN
522+
IF( SCALEA .AND. INFO.GE.0 ) THEN
523523
CALL SLASCL( 'G', 0, 0, CSCALE, ANRM, N-INFO, 1,
524524
$ WR( INFO+1 ),
525525
$ MAX( N-INFO, 1 ), IERR )

SRC/zgeev.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ SUBROUTINE ZGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR,
493493
* Undo scaling if necessary
494494
*
495495
50 CONTINUE
496-
IF( SCALEA ) THEN
496+
IF( SCALEA .AND.INFO.GE.0) THEN
497497
CALL ZLASCL( 'G', 0, 0, CSCALE, ANRM, N-INFO, 1,
498498
$ W( INFO+1 ),
499499
$ MAX( N-INFO, 1 ), IERR )

0 commit comments

Comments
 (0)