projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dedupe_percentage should work even if compress_percentage is not set
[fio.git]
/
init.c
diff --git
a/init.c
b/init.c
index dc563fd212adcc6fb2b561193fb283c33369603f..bb53a1e2bc097a256172db7e46075bd5658704da 100644
(file)
--- a/
init.c
+++ b/
init.c
@@
-1036,8
+1036,14
@@
static char *make_filename(char *buf, size_t buf_size,struct thread_options *o,
ret = snprintf(dst, dst_left, "%s", jobname);
if (ret < 0)
break;
ret = snprintf(dst, dst_left, "%s", jobname);
if (ret < 0)
break;
- dst += ret;
- dst_left -= ret;
+ else if (ret > dst_left) {
+ log_err("fio: truncated filename\n");
+ dst += dst_left;
+ dst_left = 0;
+ } else {
+ dst += ret;
+ dst_left -= ret;
+ }
break;
}
case FPRE_JOBNUM: {
break;
}
case FPRE_JOBNUM: {
@@
-1046,8
+1052,14
@@
static char *make_filename(char *buf, size_t buf_size,struct thread_options *o,
ret = snprintf(dst, dst_left, "%d", jobnum);
if (ret < 0)
break;
ret = snprintf(dst, dst_left, "%d", jobnum);
if (ret < 0)
break;
- dst += ret;
- dst_left -= ret;
+ else if (ret > dst_left) {
+ log_err("fio: truncated filename\n");
+ dst += dst_left;
+ dst_left = 0;
+ } else {
+ dst += ret;
+ dst_left -= ret;
+ }
break;
}
case FPRE_FILENUM: {
break;
}
case FPRE_FILENUM: {
@@
-1056,8
+1068,14
@@
static char *make_filename(char *buf, size_t buf_size,struct thread_options *o,
ret = snprintf(dst, dst_left, "%d", filenum);
if (ret < 0)
break;
ret = snprintf(dst, dst_left, "%d", filenum);
if (ret < 0)
break;
- dst += ret;
- dst_left -= ret;
+ else if (ret > dst_left) {
+ log_err("fio: truncated filename\n");
+ dst += dst_left;
+ dst_left = 0;
+ } else {
+ dst += ret;
+ dst_left -= ret;
+ }
break;
}
default:
break;
}
default:
@@
-2258,12
+2276,18
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
break;
}
case 'W':
break;
}
case 'W':
+ if (trigger_file)
+ free(trigger_file);
trigger_file = strdup(optarg);
break;
case 'H':
trigger_file = strdup(optarg);
break;
case 'H':
+ if (trigger_cmd)
+ free(trigger_cmd);
trigger_cmd = strdup(optarg);
break;
case 'J':
trigger_cmd = strdup(optarg);
break;
case 'J':
+ if (trigger_remote_cmd)
+ free(trigger_remote_cmd);
trigger_remote_cmd = strdup(optarg);
break;
case 'B':
trigger_remote_cmd = strdup(optarg);
break;
case 'B':