Make sure connection->name is never NULL.
authorGuus Sliepen <guus@tinc-vpn.org>
Wed, 16 May 2007 14:42:08 +0000 (14:42 +0000)
committerGuus Sliepen <guus@tinc-vpn.org>
Wed, 16 May 2007 14:42:08 +0000 (14:42 +0000)
src/connection.c
src/net_socket.c
src/protocol_auth.c

index c4c9fd4861a530f8b2c3e63a950f0b43ce50cb1a..53c0fd04fd5ed017c8317185cf75ec487e239165 100644 (file)
@@ -1,6 +1,6 @@
 /*
     connection.c -- connection list management
-    Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
+    Copyright (C) 2000-2007 Guus Sliepen <guus@tinc-vpn.org>,
                   2000-2005 Ivo Timmermans
 
     This program is free software; you can redistribute it and/or modify
@@ -78,6 +78,9 @@ void free_connection(connection_t *c)
 {
        cp();
 
+       if(c->name)
+               free(c->name);
+
        if(c->hostname)
                free(c->hostname);
 
index 149b0d3b2ecba9a17e5cd2d5e8ffd8d544a4372a..bf5130d6a7dbc8f86662b96126dcba9671ba44b1 100644 (file)
@@ -1,7 +1,7 @@
 /*
     net_socket.c -- Handle various kinds of sockets.
     Copyright (C) 1998-2005 Ivo Timmermans,
-                  2000-2006 Guus Sliepen <guus@tinc-vpn.org>
+                  2000-2007 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
@@ -424,7 +424,7 @@ bool handle_new_meta_connection(int sock)
        sockaddrunmap(&sa);
 
        c = new_connection();
-       c->name = NULL;
+       c->name = xstrdup("<unknown>");
        c->outcipher = myself->connection->outcipher;
        c->outdigest = myself->connection->outdigest;
        c->outmaclength = myself->connection->outmaclength;
index f8a15be82ce285867e0d4e0ecfcc65ff5cd8a4b5..0efeceb2037e10a24cfcc1488276d56dd83e4a6b 100644 (file)
@@ -1,7 +1,7 @@
 /*
     protocol_auth.c -- handle the meta-protocol, authentication
     Copyright (C) 1999-2005 Ivo Timmermans,
-                  2000-2006 Guus Sliepen <guus@tinc-vpn.org>
+                  2000-2007 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
@@ -68,9 +68,9 @@ bool id_h(connection_t *c)
                return false;
        }
 
-       /* If we set c->name in advance, make sure we are connected to the right host */
+       /* If this is an outgoing connection, make sure we are connected to the right host */
 
-       if(c->name) {
+       if(c->outgoing) {
                if(strcmp(c->name, name)) {
                        logger(LOG_ERR, _("Peer %s is %s instead of %s"), c->hostname, name,
                                   c->name);