mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 17:52:52 +00:00
LwIP: clamp reads to a value that can be expressed in 16 bits
There is a bug in the LwIP VFS plugin, the chained buffers used by Lwip use sizes expressed in sixteen bits, and under conditions such as a read of 1<<16 the higher bits are lost and the plugin performs a zero length read, and the application interprets this as a closed connection. Fix #2947
This commit is contained in:
parent
0bcab1df84
commit
6f8e8a6ea4
@ -1775,6 +1775,12 @@ class Lwip::File_system final : public Vfs::File_system
|
||||
char *dst, file_size count,
|
||||
file_size &out_count) override
|
||||
{
|
||||
/*
|
||||
* LwIP buffer operations are limited to sizes that
|
||||
* can be expressed in sixteen bits
|
||||
*/
|
||||
count = Genode::min(count, 0xffffU);
|
||||
|
||||
out_count = 0;
|
||||
|
||||
if ((!vfs_handle) ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user