X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=stat.c;h=e2bc8ddb5fa4a554cd45b7c2ff9f0fd16f00e91d;hb=a06aec04b3422d8ec63250e3ac56bbf526bc41b0;hp=bf87917c2956eb60729fa9ea95ac93b1cbe1ed50;hpb=d5495f0b72f8fbecb97192da430720aa56f8feb9;p=fio.git diff --git a/stat.c b/stat.c index bf87917c..e2bc8ddb 100644 --- a/stat.c +++ b/stat.c @@ -1828,10 +1828,11 @@ void __show_run_stats(void) /* * These are per-group shared already */ - strncpy(ts->name, td->o.name, FIO_JOBNAME_SIZE - 1); + snprintf(ts->name, sizeof(ts->name), "%s", td->o.name); if (td->o.description) - strncpy(ts->description, td->o.description, - FIO_JOBDESC_SIZE - 1); + snprintf(ts->description, + sizeof(ts->description), "%s", + td->o.description); else memset(ts->description, 0, FIO_JOBDESC_SIZE); @@ -1868,12 +1869,12 @@ void __show_run_stats(void) if (!td->error && td->o.continue_on_error && td->first_error) { ts->error = td->first_error; - ts->verror[sizeof(ts->verror) - 1] = '\0'; - strncpy(ts->verror, td->verror, sizeof(ts->verror) - 1); + snprintf(ts->verror, sizeof(ts->verror), "%s", + td->verror); } else if (td->error) { ts->error = td->error; - ts->verror[sizeof(ts->verror) - 1] = '\0'; - strncpy(ts->verror, td->verror, sizeof(ts->verror) - 1); + snprintf(ts->verror, sizeof(ts->verror), "%s", + td->verror); } } @@ -2122,6 +2123,9 @@ static int check_status_file(void) } if (temp_dir == NULL) temp_dir = "/tmp"; +#ifdef __COVERITY__ + __coverity_tainted_data_sanitize__(temp_dir); +#endif snprintf(fio_status_file_path, sizeof(fio_status_file_path), "%s/%s", temp_dir, FIO_STATUS_FILE); @@ -2579,7 +2583,7 @@ void add_clat_sample(struct thread_data *td, enum fio_ddir ddir, io_u_plat = (uint64_t *) td->ts.io_u_plat[ddir]; dst = malloc(sizeof(struct io_u_plat_entry)); memcpy(&(dst->io_u_plat), io_u_plat, - FIO_IO_U_PLAT_NR * sizeof(unsigned int)); + FIO_IO_U_PLAT_NR * sizeof(uint64_t)); flist_add(&dst->list, &hw->list); __add_log_sample(iolog, sample_plat(dst), ddir, bs, elapsed, offset);