summary refs log tree commit diff stats
path: root/results/scraper/fex/753
diff options
context:
space:
mode:
Diffstat (limited to 'results/scraper/fex/753')
-rw-r--r--results/scraper/fex/75316
1 files changed, 16 insertions, 0 deletions
diff --git a/results/scraper/fex/753 b/results/scraper/fex/753
new file mode 100644
index 000000000..e28fa6139
--- /dev/null
+++ b/results/scraper/fex/753
@@ -0,0 +1,16 @@
+EmulatedFDManager::OpenAt breaks when reopening anonymous objects via /proc/self/fd
+Not sure if any sane guest would do this.

+

+But if a guest was to open a socket or memfd (anything which isn't backed by a real path) and then tries to re-open it via the `/proc/self/fd/` handle, our syscall emulation crashes.

+

+the following gvisor tests do this:

+

+ * memfd_test.jit.gvisor

+ * proc_test.jit.gvisor

+ * socket_abstract_test.jit.gvisor

+ * socket_filesystem_test.jit.gvisor

+ * socket_unix_pair_test.jit.gvisor

+

+The issue is that when `EmulatedFDManager::OpenAt` tries to resolve the canonical, absolute path, `std::filesystem::canonical` throws an exception because it obviously doesn't resolve an absolute path. 

+

+The fix is probably just catching the exception and returning -1 when this happens. 
\ No newline at end of file