mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-10-10 22:38:44 +02:00
fix(fs): cap the buffer allocated by the read command (#3626)
In plugins/fs/src/commands.rs read, `vec![0; len]` used the length sent by the webview as is, so a huge `len` aborted the process on allocation failure, and the whole buffer (not only the bytes read) was sent back. The length is now capped to the rest of the file (at least 64 KiB) for regular files and to 64 MiB otherwise, the allocation uses try_reserve so a failure is an error, and the buffer is truncated to the bytes read. The JS side only ever used the first `nread` bytes. Unit test for the cap.
This commit is contained in:
1 parent
9a74a78c71
commit
5e6c023a79
2 files changed
+69
-3
No files matched your search
@@ -0,0 +1,6 @@
|
||||
---
|
||||
fs: patch
|
||||
fs-js: patch
|
||||
---
|
||||
|
||||
`FileHandle.read` no longer allocates a buffer of the requested size up front: the length is capped to the rest of the file (64 MiB for files of unknown size), an allocation failure is reported as an error instead of aborting the app, and only the bytes that were read are sent back to the webview.
|
||||
Reference in new issue
Block a user