diff --git a/cutils.c b/cutils.c index c91f88732e..5d995bc4e5 100644 --- a/cutils.c +++ b/cutils.c @@ -415,3 +415,15 @@ int64_t strtosz(const char *nptr, char **end) { return strtosz_suffix(nptr, end, STRTOSZ_DEFSUFFIX_MB); } + +int qemu_parse_fd(const char *param) +{ + int fd; + char *endptr = NULL; + + fd = strtol(param, &endptr, 10); + if (*endptr || (fd == 0 && param == endptr)) { + return -1; + } + return fd; +} diff --git a/net.c b/net.c index d05930c91f..cb52050bfd 100644 --- a/net.c +++ b/net.c @@ -733,12 +733,7 @@ int net_handle_fd_param(Monitor *mon, const char *param) return -1; } } else { - char *endptr = NULL; - - fd = strtol(param, &endptr, 10); - if (*endptr || (fd == 0 && param == endptr)) { - return -1; - } + fd = qemu_parse_fd(param); } return fd; diff --git a/qemu-common.h b/qemu-common.h index 1c15cb17a7..2ce47aa12d 100644 --- a/qemu-common.h +++ b/qemu-common.h @@ -129,6 +129,7 @@ time_t mktimegm(struct tm *tm); int qemu_fls(int i); int qemu_fdatasync(int fd); int fcntl_setfl(int fd, int flag); +int qemu_parse_fd(const char *param); /* * strtosz() suffixes used to specify the default treatment of an