[PATCH] Fix random_map
[fio.git] / stat.c
diff --git a/stat.c b/stat.c
index 518d14dd13ad43dbe1dbfe02b6e83aec0a802eda..0ae19b282026782e09a8298f1363d4c448a24bf1 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;
 {
        struct fio_file *f;
        struct stat st;
-       char foo[256], tmp[256];
+       char foo[PATH_MAX], tmp[PATH_MAX];
        dev_t dev;
        char *p;
 
        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
                 */
                /*
                 * 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");
                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;
                }
                        log_err("unknown sysfs layout\n");
                        return;
                }
-               strcpy(tmp, p);
+               strncpy(tmp, p, PATH_MAX - 1);
                sprintf(foo, "%s", tmp);
        }
 
                sprintf(foo, "%s", tmp);
        }