projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net engine: improve host/port parsing
[fio.git]
/
engines
/
net.c
diff --git
a/engines/net.c
b/engines/net.c
index df8b62597ef681392c76f25110d4dd9007b98870..137c5799169fa10fbdbaeb597c87f0c7c17f0b95 100644
(file)
--- a/
engines/net.c
+++ b/
engines/net.c
@@
-353,7
+353,7
@@
static int fio_netio_setup_listen(struct thread_data *td, short port)
static int fio_netio_init(struct thread_data *td)
{
struct netio_data *nd = td->io_ops->data;
static int fio_netio_init(struct thread_data *td)
{
struct netio_data *nd = td->io_ops->data;
- unsigned
shor
t port;
+ unsigned
in
t port;
char host[64], buf[128];
char *sep;
int ret;
char host[64], buf[128];
char *sep;
int ret;
@@
-370,15
+370,18
@@
static int fio_netio_init(struct thread_data *td)
strcpy(buf, td->o.filename);
sep = strchr(buf, '/');
strcpy(buf, td->o.filename);
sep = strchr(buf, '/');
- if (!sep) {
- log_err("fio: bad network host/port <<%s>>\n", td->o.filename);
- return 1;
- }
+ if (!sep)
+ goto bad_host;
*sep = '\0';
sep++;
strcpy(host, buf);
*sep = '\0';
sep++;
strcpy(host, buf);
- port = atoi(sep);
+ if (!strlen(host))
+ goto bad_host;
+
+ port = strtol(sep, NULL, 10);
+ if (!port || port > 65535)
+ goto bad_host;
if (td_read(td)) {
nd->send_to_net = 0;
if (td_read(td)) {
nd->send_to_net = 0;
@@
-389,6
+392,9
@@
static int fio_netio_init(struct thread_data *td)
}
return ret;
}
return ret;
+bad_host:
+ log_err("fio: bad network host/port: %s\n", td->o.filename);
+ return 1;
}
static void fio_netio_cleanup(struct thread_data *td)
}
static void fio_netio_cleanup(struct thread_data *td)