summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/server.c1
-rw-r--r--libubus-io.c3
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;
}