Using alloca() for a constant sized buffer is very silly.
[tinc] / src / net_setup.c
index 74c57c5..7485d21 100644 (file)
@@ -285,7 +285,7 @@ void regenerate_key(void) {
                timeout_set(&keyexpire_event, keyexpire_handler, NULL);
        }
 
-       event_add(&keyexpire_event, &(struct timeval){keylifetime, 0});
+       event_add(&keyexpire_event, &(struct timeval){keylifetime, rand() % 100000});
 }
 
 /*
@@ -393,7 +393,7 @@ char *get_name(void) {
                                logger(DEBUG_ALWAYS, LOG_ERR, "Invalid Name: environment variable %s does not exist\n", name + 1);
                                return false;
                        }
-                       envname = alloca(32);
+                       char envname[32];
                        if(gethostname(envname, 32)) {
                                logger(DEBUG_ALWAYS, LOG_ERR, "Could not get hostname: %s\n", strerror(errno));
                                return false;