Enable and fix many extra warnings supported by GCC and Clang.
[tinc] / src / bsd / device.c
index 57029d5..0c1a62f 100644 (file)
@@ -1,7 +1,7 @@
 /*
     device.c -- Interaction BSD tun/tap device
     Copyright (C) 2001-2005 Ivo Timmermans,
-                  2001-2021 Guus Sliepen <guus@tinc-vpn.org>
+                  2001-2022 Guus Sliepen <guus@tinc-vpn.org>
                   2009      Grzegorz Dymarek <gregd72002@googlemail.com>
 
     This program is free software; you can redistribute it and/or modify
@@ -76,7 +76,9 @@ static bool setup_utun(void) {
                return false;
        }
 
-       struct ctl_info info = {};
+       struct ctl_info info;
+
+       memset(&info, 0, sizeof(info));
 
        strlcpy(info.ctl_name, UTUN_CONTROL_NAME, sizeof(info.ctl_name));
 
@@ -125,13 +127,13 @@ static bool setup_utun(void) {
 #endif
 
 static bool setup_device(void) {
-       get_config_string(lookup_config(config_tree, "Device"), &device);
+       get_config_string(lookup_config(&config_tree, "Device"), &device);
 
        // Find out if it's supposed to be a tun or a tap device
 
        char *type;
 
-       if(get_config_string(lookup_config(config_tree, "DeviceType"), &type)) {
+       if(get_config_string(lookup_config(&config_tree, "DeviceType"), &type)) {
                if(!strcasecmp(type, "tun"))
                        /* use default */;
 
@@ -233,7 +235,7 @@ static bool setup_device(void) {
                realname = device;
        }
 
-       if(!get_config_string(lookup_config(config_tree, "Interface"), &iface)) {
+       if(!get_config_string(lookup_config(&config_tree, "Interface"), &iface)) {
                iface = xstrdup(strrchr(realname, '/') ? strrchr(realname, '/') + 1 : realname);
        } else if(strcmp(iface, strrchr(realname, '/') ? strrchr(realname, '/') + 1 : realname)) {
                logger(DEBUG_ALWAYS, LOG_WARNING, "Warning: Interface does not match Device. $INTERFACE might be set incorrectly.");