]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
hlr_auc_gw: Hide a bogus static analyzer warning
authorJouni Malinen <j@w1.fi>
Sat, 18 Jul 2015 19:53:07 +0000 (22:53 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 18 Jul 2015 19:55:02 +0000 (22:55 +0300)
For some reason, snprintf() was not seen as sufficient to remove
potentially tainted string from fgets() before passing this to rename().
This does not make much sense, but anyway, try to get rid of the warning
by using a separate buffer for the internally written file names.
(CID 72690)

Signed-off-by: Jouni Malinen <j@w1.fi>
hostapd/hlr_auc_gw.c

index 8afe45701cf62f3fb67c7d6ef797573d39625c35..84d0308262e6d5b64fd4c58e388ae8a68cfc8a63 100644 (file)
@@ -550,7 +550,7 @@ static int read_milenage(const char *fname)
 static void update_milenage_file(const char *fname)
 {
        FILE *f, *f2;
-       char buf[500], *pos;
+       char name[500], buf[500], *pos;
        char *end = buf + sizeof(buf);
        struct milenage_parameters *m;
        size_t imsi_len;
@@ -561,10 +561,10 @@ static void update_milenage_file(const char *fname)
                return;
        }
 
-       snprintf(buf, sizeof(buf), "%s.new", fname);
-       f2 = fopen(buf, "w");
+       snprintf(name, sizeof(name), "%s.new", fname);
+       f2 = fopen(name, "w");
        if (f2 == NULL) {
-               printf("Could not write Milenage data file '%s'\n", buf);
+               printf("Could not write Milenage data file '%s'\n", name);
                fclose(f);
                return;
        }
@@ -606,14 +606,14 @@ static void update_milenage_file(const char *fname)
        fclose(f2);
        fclose(f);
 
-       snprintf(buf, sizeof(buf), "%s.bak", fname);
-       if (rename(fname, buf) < 0) {
+       snprintf(name, sizeof(name), "%s.bak", fname);
+       if (rename(fname, name) < 0) {
                perror("rename");
                return;
        }
 
-       snprintf(buf, sizeof(buf), "%s.new", fname);
-       if (rename(buf, fname) < 0) {
+       snprintf(name, sizeof(name), "%s.new", fname);
+       if (rename(name, fname) < 0) {
                perror("rename");
                return;
        }