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

Unified Diff: url/third_party/mozilla/url_parse.cc

Issue 560283003: Wrong filename on file upload (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added unit testcases and modified code accordingly Created 6 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
« no previous file with comments | « no previous file | url/url_parse_unittest.cc » ('j') | url/url_parse_unittest.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: url/third_party/mozilla/url_parse.cc
diff --git a/url/third_party/mozilla/url_parse.cc b/url/third_party/mozilla/url_parse.cc
index 62567969a6502b1d5bf4a781e078ca778f462fd9..acdcf12535b2bea8f97517a0372d22b304bdbd21 100644
--- a/url/third_party/mozilla/url_parse.cc
+++ b/url/third_party/mozilla/url_parse.cc
@@ -626,24 +626,21 @@ void DoExtractFileName(const CHAR* spec,
// path, but here, we don't want to count it. The last semicolon is the
// parameter. The path should start with a slash, so we don't need to check
// the first one.
+ bool is_file_end_fixed = false;
int file_end = path.end();
- for (int i = path.end() - 1; i > path.begin; i--) {
- if (spec[i] == ';') {
+ for (int i = path.end() - 1; i >= path.begin; i--) {
+ if (!is_file_end_fixed && spec[i] == ';') {
brettw 2014/09/16 22:37:10 It seems that this behavior takes everything betwe
arun87.kumar 2014/09/17 11:39:12 i too felt that incase of "foo/bar;baz;lala", the
file_end = i;
- break;
- }
- }
-
- // Now search backwards from the filename end to the previous slash
- // to find the beginning of the filename.
- for (int i = file_end - 1; i >= path.begin; i--) {
- if (IsURLSlash(spec[i])) {
+ is_file_end_fixed = true;
+ }else if (IsURLSlash(spec[i])) {
brettw 2014/09/16 22:37:10 Space before "else"
arun87.kumar 2014/09/17 11:39:12 Done.
+ // search backwards from the filename end to the previous slash
brettw 2014/09/16 22:37:09 This comment should be updated (this code no longe
arun87.kumar 2014/09/17 11:39:12 Done.
+ // to find the beginning of the filename.
// File name is everything following this character to the end
*file_name = MakeRange(i + 1, file_end);
return;
}
}
-
+
brettw 2014/09/16 22:37:09 Watch out for extra spaces.
arun87.kumar 2014/09/17 11:39:12 Done.
// No slash found, this means the input was degenerate (generally paths
// will start with a slash). Let's call everything the file name.
*file_name = MakeRange(path.begin, file_end);
« no previous file with comments | « no previous file | url/url_parse_unittest.cc » ('j') | url/url_parse_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698