Fix invalid pointer use in get_my_hostname().
authorEtienne Dechamps <etienne@edechamps.fr>
Sun, 24 May 2015 08:49:16 +0000 (09:49 +0100)
committerEtienne Dechamps <etienne@edechamps.fr>
Sun, 24 May 2015 08:49:16 +0000 (09:49 +0100)
clang-3.7 warnings surfaced an actual bug:

invitation.c:185:5: error: address of array 'filename' will always evaluate to 'true'
      [-Werror,-Wpointer-bool-conversion]
        if(filename) {
        ~~ ^~~~~~~~

The regression was introduced in 3ccdf50beb6b2d3f2730bdc66006b43190537cde.

src/invitation.c

index ed2df88a14d3f6990713d8b65376bae703306bc5..415c23772dcb09f6238839f92d2640fe352fd05c 100644 (file)
@@ -84,7 +84,7 @@ char *get_my_hostname() {
        char *port = NULL;
        char *hostport = NULL;
        char *name = get_my_name(false);
-       char filename[PATH_MAX];
+       char filename[PATH_MAX] = {0};
 
        // Use first Address statement in own host config file
        if(check_id(name)) {
@@ -182,7 +182,7 @@ again:
        hostname = xstrdup(line);
 
 save:
-       if(filename) {
+       if(*filename) {
                FILE *f = fopen(filename, "a");
                if(f) {
                        fprintf(f, "\nAddress = %s\n", hostname);