[PATCH] Warn on writable strings
[fio.git] / stat.c
diff --git a/stat.c b/stat.c
index 518d14dd13ad43dbe1dbfe02b6e83aec0a802eda..0ccf37e7bc481e3db70b915b1ad8d06e4aa10fb8 100644 (file)
--- a/stat.c
+++ b/stat.c
@@ -189,7 +189,7 @@ void init_disk_util(struct thread_data *td)
 {
        struct fio_file *f;
        struct stat st;
-       char foo[256], tmp[256];
+       char foo[PATH_MAX], tmp[PATH_MAX];
        dev_t dev;
        char *p;
 
@@ -209,7 +209,7 @@ void init_disk_util(struct thread_data *td)
                /*
                 * must be a file, open "." in that path
                 */
-               strcpy(foo, f->file_name);
+               strncpy(foo, f->file_name, PATH_MAX - 1);
                p = dirname(foo);
                if (stat(p, &st)) {
                        perror("disk util stat");
@@ -239,7 +239,7 @@ void init_disk_util(struct thread_data *td)
                        log_err("unknown sysfs layout\n");
                        return;
                }
-               strcpy(tmp, p);
+               strncpy(tmp, p, PATH_MAX - 1);
                sprintf(foo, "%s", tmp);
        }
 
@@ -333,7 +333,7 @@ static void show_disk_util(void)
 static void show_ddir_status(struct thread_data *td, struct group_run_stats *rs,
                             int ddir)
 {
-       char *ddir_str[] = { "read ", "write" };
+       const char *ddir_str[] = { "read ", "write" };
        unsigned long min, max;
        unsigned long long bw;
        double mean, dev;