--- x/io_uring/net.c +++ y/io_uring/net.c @@ -1742,8 +1742,12 @@ int io_bind(struct io_kiocb *req, unsign struct io_bind *bind = io_kiocb_to_cmd(req, struct io_bind); struct io_async_msghdr *io = req->async_data; int ret; + struct socket *sk; - ret = __sys_bind_socket(sock_from_file(req->file), &io->addr, bind->addr_len); + sk = sock_from_file(req->file); + if (!sk) + return -ENOTSOCK; + ret = __sys_bind_socket(sk, &io->addr, bind->addr_len); if (ret < 0) req_set_fail(req); io_req_set_res(req, ret, 0);