Fix File::OpenUri on Windows.
This is follow-up to c5c18a0ace7e4cb6f827ad3a5b80fae15d3e7b3f.
Bug: dartbug.com/33793
Change-Id: Ic281c11ea5a2c4e10cdccb0617a12b6dfbda1c68
Reviewed-on: https://dart-review.googlesource.com/64243
Reviewed-by: Zach Anderson <zra@google.com>
diff --git a/runtime/bin/file_win.cc b/runtime/bin/file_win.cc
index 9c486cc..d7d5b3f 100644
--- a/runtime/bin/file_win.cc
+++ b/runtime/bin/file_win.cc
@@ -282,7 +282,13 @@
}
File* File::OpenUri(Namespace* namespc, const char* uri, FileOpenMode mode) {
- Utf8ToWideScope uri_w(uri);
+ UriDecoder uri_decoder(uri);
+ if (uri_decoder.decoded() == NULL) {
+ SetLastError(ERROR_INVALID_NAME);
+ return NULL;
+ }
+
+ Utf8ToWideScope uri_w(uri_decoder.decoded());
if (!UrlIsFileUrlW(uri_w.wide())) {
return FileOpenW(uri_w.wide(), mode);
}