Skip to content

Commit

Permalink
Issue #159: Set width for input stream (CodeQL).
Browse files Browse the repository at this point in the history
  • Loading branch information
johnoel committed Dec 16, 2020
1 parent d87b7d1 commit 3046769
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/linad99/dvect9.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ dvector::dvector(const char* s)
<< "dvector::dvector(char* filename)\n";
ad_exit(1);
}
infile.width(MAX_FIELD_LENGTH);
char* field = new char[MAX_FIELD_LENGTH + 1];
int count = 0;
do
Expand Down Expand Up @@ -224,6 +225,8 @@ dvector::dvector(const char* s)
}
delete[] field;
field = 0;

infile.close();
}
delete [] t;
t = 0;
Expand Down Expand Up @@ -332,6 +335,7 @@ void dvector::allocate(const char* s)
ad_exit(1);
}

infile.width(MAX_FIELD_LENGTH);
char* field = new char[MAX_FIELD_LENGTH + 1];

int count = 0;
Expand Down Expand Up @@ -412,6 +416,8 @@ void dvector::allocate(const char* s)
}
delete [] field;
field = 0;

infile.close();
}
delete [] t;
t = 0;
Expand Down
3 changes: 3 additions & 0 deletions src/linad99/fvar_io2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ dvar_vector::dvar_vector(const char * s)
int i=0;

// char * field = (char *) new[size_t(MAX_FIELD_LENGTH+1)];
infile.width(MAX_FIELD_LENGTH);
char * field = new char[size_t(MAX_FIELD_LENGTH+1)];
int count=0;
do
Expand Down Expand Up @@ -195,6 +196,8 @@ dvar_vector::dvar_vector(const char * s)
}
delete[] field;
field = 0;

infile.close();
}
delete [] t;
t = 0;
Expand Down
17 changes: 17 additions & 0 deletions tests/gtests/test_dvar_vector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -697,3 +697,20 @@ TEST_F(test_dvar_vector, sqrvariable)
ASSERT_DOUBLE_EQ(gradients(3), 2.0 * independents(3));
ASSERT_DOUBLE_EQ(gradients(4), 2.0 * independents(4));
}
TEST_F(test_dvar_vector, nobraces)
{
gradient_structure gs;

ofstream ofs("test_dvector.txt");
ofs << "0 1 2 3 4 5\n";
ofs.close();

dvar_vector v("test_dvector.txt");

ASSERT_DOUBLE_EQ(0, value(v(1)));
ASSERT_DOUBLE_EQ(1, value(v(2)));
ASSERT_DOUBLE_EQ(2, value(v(3)));
ASSERT_DOUBLE_EQ(3, value(v(4)));
ASSERT_DOUBLE_EQ(4, value(v(5)));
ASSERT_DOUBLE_EQ(5, value(v(6)));
}

0 comments on commit 3046769

Please sign in to comment.