diff options
-rw-r--r-- | examples/server.c | 1 | ||||
-rw-r--r-- | libubus-io.c | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/examples/server.c b/examples/server.c index bfad363..95eba5e 100644 --- a/examples/server.c +++ b/examples/server.c @@ -68,7 +68,6 @@ static void test_hello_reply(struct uloop_timeout *t) pipe(fds); ubus_request_set_fd(ctx, &req->req, fds[0]); ubus_complete_deferred_request(ctx, &req->req, 0); - close(fds[0]); req->fd = fds[1]; req->timeout.cb = test_hello_fd_reply; diff --git a/libubus-io.c b/libubus-io.c index bc054b8..030d382 100644 --- a/libubus-io.c +++ b/libubus-io.c @@ -142,6 +142,9 @@ int __hidden ubus_send_msg(struct ubus_context *ctx, uint32_t seq, if (ret < 0) ctx->sock.eof = true; + if (fd >= 0) + close(fd); + return ret; } |