File tree Expand file tree Collapse file tree 2 files changed +15
-8
lines changed Expand file tree Collapse file tree 2 files changed +15
-8
lines changed Original file line number Diff line number Diff line change @@ -248,6 +248,7 @@ Coverity Scan defects targeted deliberately:
248248- CID 1373651: Logically dead code
249249- CID 1373652: Dereference before null check
250250- CID 1373653: Write to pointer after free
251+ - CID 1373654: Use after free
251252
252253Coverity Scan defects eliminated in passing:
253254
Original file line number Diff line number Diff line change @@ -3620,6 +3620,7 @@ GenericSpline *Parser::Parse_Spline()
36203620{
36213621 GenericSpline * Old = NULL ;
36223622 GenericSpline * New = NULL ;
3623+ bool keepOld = false ;
36233624 int i = 0 ;
36243625 EXPRESS Express;
36253626 int Terms, MaxTerms;
@@ -3635,6 +3636,7 @@ GenericSpline *Parser::Parse_Spline()
36353636 Old = reinterpret_cast <GenericSpline *>(Token.Data );
36363637 i = Old->SplineEntries .size ();
36373638 MaxTerms = Old->Terms ;
3639+ keepOld = true ;
36383640 EXIT
36393641 END_CASE
36403642
@@ -3647,43 +3649,47 @@ GenericSpline *Parser::Parse_Spline()
36473649 /* Determine kind of spline */
36483650 EXPECT
36493651 CASE (LINEAR_SPLINE_TOKEN)
3650- if (New)
3651- delete New;
36523652 if (Old)
36533653 New = new LinearSpline (*Old);
36543654 else
36553655 New = new LinearSpline ();
3656+ if (Old && !keepOld)
3657+ delete Old;
36563658 Old = New;
3659+ keepOld = false ;
36573660 END_CASE
36583661
36593662 CASE (QUADRATIC_SPLINE_TOKEN)
3660- if (New)
3661- delete New;
36623663 if (Old)
36633664 New = new QuadraticSpline (*Old);
36643665 else
36653666 New = new QuadraticSpline ();
3667+ if (Old && !keepOld)
3668+ delete Old;
36663669 Old = New;
3670+ keepOld = false ;
36673671 END_CASE
36683672
36693673 CASE (CUBIC_SPLINE_TOKEN)
3670- if (New)
3671- delete New;
36723674 if (Old)
36733675 New = new CatmullRomSpline (*Old);
36743676 else
36753677 New = new CatmullRomSpline ();
3678+ if (Old && !keepOld)
3679+ delete Old;
36763680 Old = New;
3681+ keepOld = false ;
36773682 END_CASE
36783683
36793684 CASE (NATURAL_SPLINE_TOKEN)
3680- if (New)
3681- delete New;
36823685 if (Old)
36833686 New = new NaturalSpline (*Old);
36843687 else
36853688 New = new NaturalSpline ();
3689+ if (Old && !keepOld)
3690+ delete Old;
36863691 Old = New;
3692+ keepOld = false ;
36873693 END_CASE
36883694
36893695 OTHERWISE
You can’t perform that action at this time.
0 commit comments