Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(617)

Unified Diff: extensions/browser/file_highlighter.cc

Issue 23875013: Handle invalid input for SourceHighlighter, Don't Allow Relative Paths in ErrorHandler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove comment + address security risk in ErrorHandler Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/browser/file_highlighter.cc
diff --git a/extensions/browser/file_highlighter.cc b/extensions/browser/file_highlighter.cc
index d3edeca42cf7bb0eed41ef2f95df899de1700816..2cc669ee2f5f3161cb27348ecbd9caf79da479b8 100644
--- a/extensions/browser/file_highlighter.cc
+++ b/extensions/browser/file_highlighter.cc
@@ -203,8 +203,19 @@ SourceHighlighter::~SourceHighlighter() {
}
void SourceHighlighter::Parse(size_t line_number) {
- for (size_t i = 1; i < line_number; ++i)
- start_ = contents_.find('\n', start_) + 1;
+ // If line 0 is requested, highlight nothing.
+ if (line_number == 0) {
+ start_ = contents_.size();
+ return;
+ }
+
+ for (size_t i = 1; i < line_number; ++i) {
+ start_ = contents_.find('\n', start_);
+ if (start_ == std::string::npos)
+ break;
+ start_ += 1;
+ }
+
end_ = contents_.find('\n', start_);
// If we went off the end of the string (i.e., the line number was invalid),
« no previous file with comments | « chrome/browser/ui/webui/extensions/extension_error_handler.cc ('k') | extensions/browser/file_highlighter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698