Ensure proper logging in the invite-offline test.
[tinc] / src / names.c
index 47729da..0cae28a 100644 (file)
@@ -1,7 +1,7 @@
 /*
     names.c -- generate commonly used (file)names
     Copyright (C) 1998-2005 Ivo Timmermans
-                  2000-2015 Guus Sliepen <guus@tinc-vpn.org>
+                  2000-2017 Guus Sliepen <guus@tinc-vpn.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -25,6 +25,7 @@
 #include "xalloc.h"
 
 char *netname = NULL;
+char *myname = NULL;
 char *confdir = NULL;           /* base configuration directory */
 char *confbase = NULL;          /* base configuration directory for this instance of tinc */
 bool confbase_given;
@@ -121,11 +122,11 @@ void make_names(bool daemon) {
        if(!unixsocketname) {
                int len = strlen(pidfilename);
                unixsocketname = xmalloc(len + 8);
-               strcpy(unixsocketname, pidfilename);
+               memcpy(unixsocketname, pidfilename, len);
                if(len > 4 && !strcmp(pidfilename + len - 4, ".pid"))
-                       strcpy(unixsocketname + len - 4, ".socket");
+                       strncpy(unixsocketname + len - 4, ".socket", 8);
                else
-                       strcpy(unixsocketname + len, ".socket");
+                       strncpy(unixsocketname + len, ".socket", 8);
        }
 }
 
@@ -137,4 +138,14 @@ void free_names(void) {
        free(logfilename);
        free(confbase);
        free(confdir);
+       free(myname);
+
+       identname = NULL;
+       netname = NULL;
+       unixsocketname = NULL;
+       pidfilename = NULL;
+       logfilename = NULL;
+       confbase = NULL;
+       confdir = NULL;
+       myname = NULL;
 }