From a36d0ec83a736b02888e3c5247b124cf9d2aa8f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20S=C3=B6ntgen?= Date: Tue, 17 Jun 2014 15:57:54 +0200 Subject: [PATCH] lxip: provide struct file pointer for udp_poll Lxip may deference the file pointer in 'udp_poll()'. So we provide a valid dummy object. Fixes #1371. --- repos/dde_linux/src/lib/lxip/socket_handler.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/repos/dde_linux/src/lib/lxip/socket_handler.cc b/repos/dde_linux/src/lib/lxip/socket_handler.cc index 62d6fd14c..44cac92fd 100644 --- a/repos/dde_linux/src/lib/lxip/socket_handler.cc +++ b/repos/dde_linux/src/lib/lxip/socket_handler.cc @@ -273,11 +273,17 @@ class Net::Socketcall : public Genode::Signal_dispatcher_base, POLLEX_SET = (POLLPRI) }; + /* + * Needed by udp_poll because it may check file->f_flags + */ + struct file f; + f.f_flags = 0; + /* * Set socket wait queue to one so we can block poll in 'tcp_poll -> poll_wait' */ set_sock_wait(sock, _call.poll.block ? 1 : 0); - int mask =sock->ops->poll(0, sock, 0); + int mask = sock->ops->poll(&f, sock, 0); set_sock_wait(sock, 0); _result.err = 0;