From db9ff821a2baf396715ee8d1615e7b83da34bd8b Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Fri, 18 Jan 2019 15:42:32 +0100 Subject: [PATCH] libc: sync 'listen' socket fs control file Fixes #3124 --- repos/libports/src/lib/libc/socket_fs_plugin.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/repos/libports/src/lib/libc/socket_fs_plugin.cc b/repos/libports/src/lib/libc/socket_fs_plugin.cc index fa0366ed9a..24f21e76b1 100644 --- a/repos/libports/src/lib/libc/socket_fs_plugin.cc +++ b/repos/libports/src/lib/libc/socket_fs_plugin.cc @@ -700,6 +700,10 @@ extern "C" int socket_fs_listen(int libc_fd, int backlog) int const n = write(context->listen_fd(), buf, len); if (n != len) return Errno(EOPNOTSUPP); + /* sync to block for write completion */ + int const res = fsync(context->listen_fd()); + if (res != 0) return res; + context->state(Context::ACCEPT_ONLY); return 0; }