From be01708af3f8282ab43a11677d517bb06156a3a4 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Thu, 18 Dec 2003 11:53:47 +0000 Subject: [PATCH] Added checks for bad input files [SVN r21321] --- example/snippets/regex_grep_example_1.cpp | 1 + example/snippets/regex_grep_example_2.cpp | 1 + example/snippets/regex_grep_example_3.cpp | 1 + example/snippets/regex_grep_example_4.cpp | 1 + example/snippets/regex_iterator_example.cpp | 1 + example/snippets/regex_merge_example.cpp | 1 + example/snippets/regex_replace_example.cpp | 1 + example/snippets/regex_search_example.cpp | 1 + example/snippets/regex_split_example_2.cpp | 1 + example/snippets/regex_token_iterator_eg_2.cpp | 1 + 10 files changed, 10 insertions(+) diff --git a/example/snippets/regex_grep_example_1.cpp b/example/snippets/regex_grep_example_1.cpp index bb8bcbef..35bd8259 100644 --- a/example/snippets/regex_grep_example_1.cpp +++ b/example/snippets/regex_grep_example_1.cpp @@ -86,6 +86,7 @@ using namespace std; void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; s.reserve(is.rdbuf()->in_avail()); char c; while(is.get(c)) diff --git a/example/snippets/regex_grep_example_2.cpp b/example/snippets/regex_grep_example_2.cpp index 1a90357e..18e52b5c 100644 --- a/example/snippets/regex_grep_example_2.cpp +++ b/example/snippets/regex_grep_example_2.cpp @@ -83,6 +83,7 @@ using namespace std; void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; s.reserve(is.rdbuf()->in_avail()); char c; while(is.get(c)) diff --git a/example/snippets/regex_grep_example_3.cpp b/example/snippets/regex_grep_example_3.cpp index 163dc979..22f2e441 100644 --- a/example/snippets/regex_grep_example_3.cpp +++ b/example/snippets/regex_grep_example_3.cpp @@ -106,6 +106,7 @@ using namespace std; void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; s.reserve(is.rdbuf()->in_avail()); char c; while(is.get(c)) diff --git a/example/snippets/regex_grep_example_4.cpp b/example/snippets/regex_grep_example_4.cpp index f259ef4b..aa281b51 100644 --- a/example/snippets/regex_grep_example_4.cpp +++ b/example/snippets/regex_grep_example_4.cpp @@ -105,6 +105,7 @@ using namespace std; void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; s.reserve(is.rdbuf()->in_avail()); char c; while(is.get(c)) diff --git a/example/snippets/regex_iterator_example.cpp b/example/snippets/regex_iterator_example.cpp index dca22572..2f493dbc 100644 --- a/example/snippets/regex_iterator_example.cpp +++ b/example/snippets/regex_iterator_example.cpp @@ -71,6 +71,7 @@ bool regex_callback(const boost::match_results& wha void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; s.reserve(is.rdbuf()->in_avail()); char c; while(is.get(c)) diff --git a/example/snippets/regex_merge_example.cpp b/example/snippets/regex_merge_example.cpp index f40cf64e..3f3b10a6 100644 --- a/example/snippets/regex_merge_example.cpp +++ b/example/snippets/regex_merge_example.cpp @@ -41,6 +41,7 @@ extern const char* footer_text; void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; s.reserve(is.rdbuf()->in_avail()); char c; while(is.get(c)) diff --git a/example/snippets/regex_replace_example.cpp b/example/snippets/regex_replace_example.cpp index 326ef6e6..36875edf 100644 --- a/example/snippets/regex_replace_example.cpp +++ b/example/snippets/regex_replace_example.cpp @@ -41,6 +41,7 @@ extern const char* footer_text; void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; s.reserve(is.rdbuf()->in_avail()); char c; while(is.get(c)) diff --git a/example/snippets/regex_search_example.cpp b/example/snippets/regex_search_example.cpp index 175047ae..a3287eb0 100644 --- a/example/snippets/regex_search_example.cpp +++ b/example/snippets/regex_search_example.cpp @@ -84,6 +84,7 @@ using namespace std; void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; s.reserve(is.rdbuf()->in_avail()); char c; while(is.get(c)) diff --git a/example/snippets/regex_split_example_2.cpp b/example/snippets/regex_split_example_2.cpp index c0fd4ea2..8bad385b 100644 --- a/example/snippets/regex_split_example_2.cpp +++ b/example/snippets/regex_split_example_2.cpp @@ -29,6 +29,7 @@ boost::regex e("<\\s*A\\s+[^>]*href\\s*=\\s*\"([^\"]*)\"", void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; // // attempt to grow string buffer to match file size, // this doesn't always work... diff --git a/example/snippets/regex_token_iterator_eg_2.cpp b/example/snippets/regex_token_iterator_eg_2.cpp index 9883fb08..35a52ace 100644 --- a/example/snippets/regex_token_iterator_eg_2.cpp +++ b/example/snippets/regex_token_iterator_eg_2.cpp @@ -28,6 +28,7 @@ boost::regex e("<\\s*A\\s+[^>]*href\\s*=\\s*\"([^\"]*)\"", void load_file(std::string& s, std::istream& is) { s.erase(); + if(is.bad()) return; // // attempt to grow string buffer to match file size, // this doesn't always work...