Messages in this thread | | | From | Dmitry Vyukov <> | Date | Wed, 10 Oct 2018 16:51:54 +0200 | Subject | Re: BUG: corrupted list in p9_read_work |
| |
On Wed, Oct 10, 2018 at 4:40 PM, Dominique Martinet <asmadeus@codewreck.org> wrote: > Dmitry Vyukov wrote on Wed, Oct 10, 2018: >> How can they be faked? >> If we could create a private rdma/virtio stub instance per test >> process, then we could I think easily use that instance for 9p. But is >> it possible? > > "RDMA" itself can be faked pretty easily nowadays, there's a "rxe" > driver that is soft RDMA over ethernet and can run over anything. > > The problem is that you can't just give the client a file like trans fd; > you'd need to open an ""rdma socket"" (simplifying wording a bit), and > afaik there is no standard tool for it ; or rather, the problem is that > RDMA is packet based so even if there were you can't just write stuff > in a fd and hope it'll work, so you need a server. > > If you're interested, 9p is trivial enough that I could provide you with > a trivial server that works like your file (just need to reimplement > something that parses header to packetize it properly; so you could > write to its stdin for example) ; that'd require some setup in the VM > (configure rxe and install that tool), but it would definitely be > possible. > What do you think ?
I would like to hear more details. Opening a socket is not a problem. Why do we need a tool for this? I don't understand the problem with "packet-based" and what does it mean to have a separate server? Any why? We definitely don't want to involve a separate third-party server, that's very problematic for multiple reasons. But we can have a chunk of custom C code inside of syzkaller. What exactly setup we need?
I guess it will make things simpler if you provide some kind of "hello world" C program that mounts 9p/rdma. I don't need exact messages (they will be same as with pipe transport, right?) nor actual server implementation, but just the place where to inject these packets.
| |