Don't stack allocate file name
[fio.git] / init.c
diff --git a/init.c b/init.c
index 66a50b03dbb8187b88db9fee3f6865a1fd0b26e7..ea531591eed47b4e9c7ce2b67cad7f97c2cfef8d 100644 (file)
--- a/init.c
+++ b/init.c
@@ -1103,15 +1103,16 @@ static int str_fst_cb(void *data, const char *str)
 static int str_filename_cb(void *data, const char *input)
 {
        struct thread_data *td = data;
 static int str_filename_cb(void *data, const char *input)
 {
        struct thread_data *td = data;
-       char *fname, *str;
+       char *fname, *str, *p;
 
        td->nr_files = 0;
 
        td->nr_files = 0;
-       str = strdup(input);
+       p = str = strdup(input);
        while ((fname = strsep(&str, ":")) != NULL) {
                add_file(td, fname);
                td->nr_files++;
        }
 
        while ((fname = strsep(&str, ":")) != NULL) {
                add_file(td, fname);
                td->nr_files++;
        }
 
+       free(p);
        return 0;
 }
 
        return 0;
 }