diff --git a/l4/pkg/libkproxy/lib/src/factory_svr.cc b/l4/pkg/libkproxy/lib/src/factory_svr.cc index 8faf423..126da8d 100644 --- a/l4/pkg/libkproxy/lib/src/factory_svr.cc +++ b/l4/pkg/libkproxy/lib/src/factory_svr.cc @@ -46,12 +46,14 @@ public: static int handle_task(Factory_svr *svr, Factory_interface *fi, L4::Ipc::Iostream &ios) { - l4_fpage_t utcb_area; + L4::Ipc::Varg utcb_area; + ios.get(&utcb_area); + if (!utcb_area.is_of()) + return -L4_EINVAL; L4::Cap t = svr->cap_alloc(); if (!t.is_valid()) return -L4_ENOMEM; - ios >> utcb_area.raw; - int r = fi->create_task(t, utcb_area); + int r = fi->create_task(t, utcb_area.value()); if (r == 0) ios << t; return r;