Version 2.17.0-268.0.dev

Merge commit '0b49bb6e37bad199016f25d89b67e90d39d5985b' into 'dev'
diff --git a/runtime/bin/file.cc b/runtime/bin/file.cc
index d7eda14..92a3b65 100644
--- a/runtime/bin/file.cc
+++ b/runtime/bin/file.cc
@@ -203,7 +203,8 @@
   uint8_t* buffer = NULL;
   Dart_Handle external_array = IOBuffer::Allocate(length, &buffer);
   if (Dart_IsNull(external_array)) {
-    Dart_SetReturnValue(args, DartUtils::NewDartOSError());
+    OSError os_error(-1, "Failed to allocate buffer", OSError::kUnknown);
+    Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
     return;
   }
   int64_t bytes_read = file->Read(reinterpret_cast<void*>(buffer), length);
@@ -289,11 +290,13 @@
   // Write all the data out into the file.
   char* byte_buffer = reinterpret_cast<char*>(buffer);
   bool success = file->WriteFully(byte_buffer + start, length);
+  OSError os_error;  // capture error if any
 
   // Release the direct pointer acquired above.
   ThrowIfError(Dart_TypedDataReleaseData(buffer_obj));
+
   if (!success) {
-    Dart_SetReturnValue(args, DartUtils::NewDartOSError());
+    Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
   } else {
     Dart_SetReturnValue(args, Dart_Null());
   }
diff --git a/tools/VERSION b/tools/VERSION
index 98d02ab..96bb58e 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 17
 PATCH 0
-PRERELEASE 267
+PRERELEASE 268
 PRERELEASE_PATCH 0
\ No newline at end of file