summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-04-27 17:39:41 +0200
committerMarcel Holtmann <marcel@holtmann.org>2011-10-20 23:54:01 -0700
commitdd5166e5ba2bba743c9a260631e1ef15b054ba31 (patch)
tree8300f5b8a17ea311baf856b6ef434c8bba6524e1
parentb836277e4064e178a5b5f136f40ebb16278318d0 (diff)
downloadneard-dd5166e5ba2bba743c9a260631e1ef15b054ba31.tar.gz
neard-dd5166e5ba2bba743c9a260631e1ef15b054ba31.tar.bz2
neard-dd5166e5ba2bba743c9a260631e1ef15b054ba31.zip
netlink: Fix segfault for NFC disabled systems
-rw-r--r--src/netlink.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/netlink.c b/src/netlink.c
index 97cd01e..bf7d085 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -154,6 +154,9 @@ int __near_netlink_get_adapters(void)
DBG("");
+ if (nfc_state->nlnfc == NULL)
+ return -ENODEV;
+
msg = nlmsg_alloc();
if (msg == NULL)
return -ENOMEM;
@@ -493,10 +496,12 @@ state_free:
void __near_netlink_cleanup(void)
{
- g_io_channel_shutdown(netlink_channel, TRUE, NULL);
- g_io_channel_unref(netlink_channel);
+ if (netlink_channel != NULL) {
+ g_io_channel_shutdown(netlink_channel, TRUE, NULL);
+ g_io_channel_unref(netlink_channel);
- netlink_channel = NULL;
+ netlink_channel = NULL;
+ }
genl_family_put(nfc_state->nlnfc);
nl_cache_free(nfc_state->nl_cache);