diff options
author | John Crispin <john@phrozen.org> | 2018-01-03 11:52:56 +0100 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2018-01-17 09:58:54 +0100 |
commit | d57907c2b30170bdab7d59a4fad6e514f1861bbb (patch) | |
tree | 595a153d13676f29cf0c3d1ed7477051749b923f | |
parent | 5f87f5480ebf004d735dbf44259d08cf8affd305 (diff) | |
download | ubus-d57907c2b30170bdab7d59a4fad6e514f1861bbb.tar.gz |
fix invalid close() call
valgrind complained about this one
==18632== Warning: invalid file descriptor -1 in syscall close()
==18632== at 0x5326D20: __close_nocancel (syscall-template.S:84)
==18632== by 0x5046C02: ubus_process_invoke (libubus-obj.c:98)
==18632== by 0x5046DC3: ubus_process_obj_msg (libubus-obj.c:142)
==18632== by 0x5045E98: ubus_process_msg (libubus.c:106)
==18632== by 0x50468D0: ubus_handle_data (libubus-io.c:314)
==18632== by 0x4E3D125: uloop_run_events (uloop.c:198)
==18632== by 0x4E3D125: uloop_run_timeout (uloop.c:555)
==18632== by 0x109BEF: uloop_run (uloop.h:111)
==18632== by 0x109BEF: main (main.c:25)
Signed-off-by: John Crispin <john@phrozen.org>
-rw-r--r-- | libubus-obj.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libubus-obj.c b/libubus-obj.c index 9261b83..b301965 100644 --- a/libubus-obj.c +++ b/libubus-obj.c @@ -95,7 +95,8 @@ found: ret = obj->methods[method].handler(ctx, obj, &req, blob_data(attrbuf[UBUS_ATTR_METHOD]), attrbuf[UBUS_ATTR_DATA]); - close(req.req_fd); + if (req.req_fd >= 0) + close(req.req_fd); if (req.deferred || no_reply) return; |