Convert sizeof foo to sizeof(foo).
[tinc] / src / process.c
index f736d00..9969146 100644 (file)
@@ -1,7 +1,7 @@
 /*
     process.c -- process management functions
     Copyright (C) 1999-2005 Ivo Timmermans,
-                  2000-2013 Guus Sliepen <guus@tinc-vpn.org>
+                  2000-2015 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
@@ -47,11 +47,6 @@ extern bool use_logfile;
 static sigset_t emptysigset;
 #endif
 
-static void memory_full(int size) {
-       logger(LOG_ERR, "Memory exhausted (couldn't allocate %d bytes), exitting.", size);
-       exit(1);
-}
-
 /* Some functions the less gifted operating systems might lack... */
 
 #ifdef HAVE_MINGW
@@ -77,25 +72,25 @@ bool install_service(void) {
        }
 
        if(!strchr(program_name, '\\')) {
-               GetCurrentDirectory(sizeof command - 1, command + 1);
-               strncat(command, "\\", sizeof command - strlen(command));
+               GetCurrentDirectory(sizeof(command) - 1, command + 1);
+               strncat(command, "\\", sizeof(command) - strlen(command));
        }
 
-       strncat(command, program_name, sizeof command - strlen(command));
+       strncat(command, program_name, sizeof(command) - strlen(command));
 
-       strncat(command, "\"", sizeof command - strlen(command));
+       strncat(command, "\"", sizeof(command) - strlen(command));
 
        for(argp = g_argv + 1; *argp; argp++) {
                space = strchr(*argp, ' ');
-               strncat(command, " ", sizeof command - strlen(command));
+               strncat(command, " ", sizeof(command) - strlen(command));
                
                if(space)
-                       strncat(command, "\"", sizeof command - strlen(command));
+                       strncat(command, "\"", sizeof(command) - strlen(command));
                
-               strncat(command, *argp, sizeof command - strlen(command));
+               strncat(command, *argp, sizeof(command) - strlen(command));
 
                if(space)
-                       strncat(command, "\"", sizeof command - strlen(command));
+                       strncat(command, "\"", sizeof(command) - strlen(command));
        }
 
        service = CreateService(manager, identname, identname,
@@ -339,10 +334,8 @@ bool detach(void) {
 
        openlogger(identname, use_logfile?LOGMODE_FILE:(do_detach?LOGMODE_SYSLOG:LOGMODE_STDERR));
 
-       logger(LOG_NOTICE, "tincd %s (%s %s) starting, debug level %d",
-                          VERSION, __DATE__, __TIME__, debug_level);
-
-       xalloc_fail_func = memory_full;
+       logger(LOG_NOTICE, "tincd %s starting, debug level %d",
+                          VERSION, debug_level);
 
        return true;
 }
@@ -359,23 +352,24 @@ void unputenv(char *p) {
        len++;
 #endif
 #endif
-       char var[len];
-       strncpy(var, p, len);
+       char var[len + 1];
+       memcpy(var, p, len);
+       var[len] = 0;
 #ifdef HAVE_UNSETENV
        unsetenv(var);
 #else
        // We must keep what we putenv() around in memory.
        // To do this without memory leaks, keep things in a list and reuse if possible.
        static list_t list = {};
-       for(list_node_t *node = list->head; node; node++) {
+       for(list_node_t *node = list.head; node; node = node->next) {
                char *data = node->data;
                if(!strcmp(data, var)) {
                        putenv(data);
                        return;
                }
        }
-       char *data = strcmp(var);
-       list_insert_tail(list, data);
+       char *data = xstrdup(var);
+       list_insert_tail(&list, data);
        putenv(data);
 #endif
 }