X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fuml_device.c;h=be609114bdd0fe4bdcfd9c01d1dd0f6a6df0c5b5;hb=953f5b4231bbbb8269bb0c55b96a1c8c4bb34a59;hp=3f521040f8ceb25827866ebf261d5181e1885391;hpb=61b441dc995c1e6dd21fd85e2014dd981e9c9350;p=tinc diff --git a/src/uml_device.c b/src/uml_device.c index 3f521040..be609114 100644 --- a/src/uml_device.c +++ b/src/uml_device.c @@ -36,7 +36,7 @@ static int request_fd = -1; static int data_fd = -1; static int write_fd = -1; static int state = 0; -static char *device_info; +static const char *device_info = "UML network socket"; enum request_type { REQ_NEW_CONTROL }; @@ -65,8 +65,6 @@ static bool setup_device(void) { get_config_string(lookup_config(config_tree, "Interface"), &iface); - device_info = "UML network socket"; - if((write_fd = socket(PF_UNIX, SOCK_DGRAM, 0)) < 0) { logger(DEBUG_ALWAYS, LOG_ERR, "Could not open write %s: %s", device_info, strerror(errno)); event_exit(); @@ -135,6 +133,7 @@ static bool setup_device(void) { listen_sun.sun_family = AF_UNIX; strncpy(listen_sun.sun_path, device, sizeof(listen_sun.sun_path)); + listen_sun.sun_path[sizeof(listen_sun.sun_path) - 1] = 0; if(bind(listen_fd, (struct sockaddr *)&listen_sun, sizeof(listen_sun)) < 0) { logger(DEBUG_ALWAYS, LOG_ERR, "Could not bind %s to %s: %s", device_info, device, strerror(errno)); @@ -240,7 +239,7 @@ static bool read_packet(vpn_packet_t *packet) { return false; } - if(connect(write_fd, (struct sockkadr *)&request.sock, sizeof(request.sock)) < 0) { + if(connect(write_fd, (const struct sockaddr *)&request.sock, sizeof(request.sock)) < 0) { logger(DEBUG_ALWAYS, LOG_ERR, "Could not bind write %s: %s", device_info, strerror(errno)); event_exit(); return false;