summaryrefslogtreecommitdiff
path: root/android/socket.c
diff options
context:
space:
mode:
authorAndrei Emeltchenko <andrei.emeltchenko@intel.com>2013-11-28 16:38:05 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2013-11-29 10:30:11 +0200
commit4675a7412d3c435d2d9dffbd12bb362222c012cf (patch)
tree18fc941a7b2804c65bb4f425ff5d60aff034ef06 /android/socket.c
parent4df38bd9ed05e981e513f26a43de3e6eb578f7e2 (diff)
downloadbluez-4675a7412d3c435d2d9dffbd12bb362222c012cf.tar.gz
android/socket: Avoid double close of file descriptor
Since we close all file descriptors in cleanup_rfsock do not close it also during iochannel cleaning up. The flag was setup in bt_io_listen and bt_io_connect calls.
Diffstat (limited to 'android/socket.c')
-rw-r--r--android/socket.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/android/socket.c b/android/socket.c
index 6e3ef26f8..8ffa530cf 100644
--- a/android/socket.c
+++ b/android/socket.c
@@ -641,6 +641,7 @@ static void accept_cb(GIOChannel *io, GError *err, gpointer user_data)
/* Handle rfcomm events */
cond = G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL;
id = g_io_add_watch(io, cond, sock_rfcomm_event_cb, rfsock_acc);
+ g_io_channel_set_close_on_unref(io, FALSE);
rfsock_acc->rfcomm_watch = id;
@@ -777,6 +778,7 @@ static void connect_cb(GIOChannel *io, GError *err, gpointer user_data)
/* Handle rfcomm events */
cond = G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL;
id = g_io_add_watch(io, cond, sock_rfcomm_event_cb, rfsock);
+ g_io_channel_set_close_on_unref(io, FALSE);
rfsock->rfcomm_watch = id;