core: Check return value of osmo_fd_register()
Change-Id: I15bb456c42d5033c9cf4c0937df22fa02b6a6086
diff --git a/src/core/tun.c b/src/core/tun.c
index 4c9dec1..33c62d5 100644
--- a/src/core/tun.c
+++ b/src/core/tun.c
@@ -399,10 +399,15 @@
if (rc < 0)
goto err_close_tun;
- osmo_fd_register(&tundev->wqueue.bfd);
+ rc = osmo_fd_register(&tundev->wqueue.bfd);
+ if (rc < 0)
+ goto err_unregister_netdev;
+
tundev->opened = true;
return 0;
+err_unregister_netdev:
+ osmo_netdev_unregister(tundev->netdev);
err_close_tun:
close(tundev->wqueue.bfd.fd);
tundev->wqueue.bfd.fd = -1;