[libvirt] [PATCH 0/5] util: Remove some obsolete and dead code

Peter Krempa (5): util: Remove virPipeReadUntilEOF vmx: Remove unused variable in virVMXParseConfig vmx: Refactor number parsing in virVMXParseConfig rpc: ssh: Use virStrToLong_i instead of virParseNumber util: Remove virParseNumber src/libvirt_private.syms | 2 - src/rpc/virnetlibsshsession.c | 6 +- src/util/virutil.c | 113 ---------------------------------- src/util/virutil.h | 4 -- src/vmx/vmx.c | 62 ++++++------------- 5 files changed, 23 insertions(+), 164 deletions(-) -- 2.20.1

Unused since 3c269b51a6f03a1a678e8d Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/libvirt_private.syms | 1 - src/util/virutil.c | 82 ---------------------------------------- src/util/virutil.h | 3 -- 3 files changed, 86 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 23cbd27ce1..d61c772d1a 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -3225,7 +3225,6 @@ virMemoryMaxValue; virParseNumber; virParseOwnershipIds; virParseVersionString; -virPipeReadUntilEOF; virScaleInteger; virSetBlocking; virSetCloseExec; diff --git a/src/util/virutil.c b/src/util/virutil.c index 0d58f1ee57..c0acf59831 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -191,88 +191,6 @@ int virSetSockReuseAddr(int fd, bool fatal) } #endif -int -virPipeReadUntilEOF(int outfd, int errfd, - char **outbuf, char **errbuf) { - - struct pollfd fds[2]; - size_t i; - bool finished[2]; - - fds[0].fd = outfd; - fds[0].events = POLLIN; - fds[0].revents = 0; - finished[0] = false; - fds[1].fd = errfd; - fds[1].events = POLLIN; - fds[1].revents = 0; - finished[1] = false; - - while (!(finished[0] && finished[1])) { - - if (poll(fds, ARRAY_CARDINALITY(fds), -1) < 0) { - if ((errno == EAGAIN) || (errno == EINTR)) - continue; - goto pollerr; - } - - for (i = 0; i < ARRAY_CARDINALITY(fds); ++i) { - char data[1024], **buf; - int got, size; - - if (!(fds[i].revents)) - continue; - else if (fds[i].revents & POLLHUP) - finished[i] = true; - - if (!(fds[i].revents & POLLIN)) { - if (fds[i].revents & POLLHUP) - continue; - - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("Unknown poll response.")); - goto error; - } - - got = read(fds[i].fd, data, sizeof(data)); - - if (got == sizeof(data)) - finished[i] = false; - - if (got == 0) { - finished[i] = true; - continue; - } - if (got < 0) { - if (errno == EINTR) - continue; - if (errno == EAGAIN) - break; - goto pollerr; - } - - buf = ((fds[i].fd == outfd) ? outbuf : errbuf); - size = (*buf ? strlen(*buf) : 0); - if (VIR_REALLOC_N(*buf, size+got+1) < 0) - goto error; - memmove(*buf+size, data, got); - (*buf)[size+got] = '\0'; - } - continue; - - pollerr: - virReportSystemError(errno, - "%s", _("poll error")); - goto error; - } - - return 0; - - error: - VIR_FREE(*outbuf); - VIR_FREE(*errbuf); - return -1; -} /* Convert C from hexadecimal character to integer. */ int diff --git a/src/util/virutil.h b/src/util/virutil.h index f8d8d85d27..a80e28b670 100644 --- a/src/util/virutil.h +++ b/src/util/virutil.h @@ -41,9 +41,6 @@ int virSetInherit(int fd, bool inherit) ATTRIBUTE_RETURN_CHECK; int virSetCloseExec(int fd) ATTRIBUTE_RETURN_CHECK; int virSetSockReuseAddr(int fd, bool fatal) ATTRIBUTE_RETURN_CHECK; -int virPipeReadUntilEOF(int outfd, int errfd, - char **outbuf, char **errbuf); - int virSetUIDGID(uid_t uid, gid_t gid, gid_t *groups, int ngroups); int virSetUIDGIDWithCaps(uid_t uid, gid_t gid, gid_t *groups, int ngroups, unsigned long long capBits, -- 2.20.1

On Wed, Apr 03, 2019 at 02:44:50PM +0200, Peter Krempa wrote:
Unused since 3c269b51a6f03a1a678e8d
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/libvirt_private.syms | 1 - src/util/virutil.c | 82 ---------------------------------------- src/util/virutil.h | 3 -- 3 files changed, 86 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

cpumasklen is only ever written to. Remove it. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/vmx/vmx.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 8ffd5ff088..429630faaf 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1301,7 +1301,6 @@ virVMXParseConfig(virVMXContext *ctx, int unit; bool hgfs_disabled = true; long long sharedFolder_maxNum = 0; - int cpumasklen; struct virVMXConfigScanResults results = { -1 }; long long coresPerSocket = 0; virCPUDefPtr cpu = NULL; @@ -1504,8 +1503,6 @@ virVMXParseConfig(virVMXContext *ctx, const char *current = sched_cpu_affinity; int number, count = 0; - cpumasklen = 0; - def->cpumask = virBitmapNew(VIR_DOMAIN_CPUMASK_LEN); if (!def->cpumask) goto cleanup; @@ -1530,9 +1527,6 @@ virVMXParseConfig(virVMXContext *ctx, goto cleanup; } - if (number + 1 > cpumasklen) - cpumasklen = number + 1; - ignore_value(virBitmapSetBit(def->cpumask, number)); ++count; -- 2.20.1

On Wed, Apr 03, 2019 at 02:44:51PM +0200, Peter Krempa wrote:
cpumasklen is only ever written to. Remove it.
Unused since ee7d23ba4b4d487f8ac078c66b743d93a24141c0
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/vmx/vmx.c | 6 ------ 1 file changed, 6 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

Parsing of the cpu affinity list was using virParseNumber. Modernize it to get rid of the virParseNumber call. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/vmx/vmx.c | 56 ++++++++++++++++++--------------------------------- 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 429630faaf..70d9443766 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1500,43 +1500,35 @@ virVMXParseConfig(virVMXContext *ctx, } if (sched_cpu_affinity != NULL && STRCASENEQ(sched_cpu_affinity, "all")) { - const char *current = sched_cpu_affinity; - int number, count = 0; + VIR_AUTOSTRINGLIST afflist = NULL; + char **aff; + size_t naffs; def->cpumask = virBitmapNew(VIR_DOMAIN_CPUMASK_LEN); if (!def->cpumask) goto cleanup; - while (*current != '\0') { - virSkipSpaces(¤t); - - number = virParseNumber(¤t); - - if (number < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Expecting VMX entry 'sched.cpu.affinity' to be " - "a comma separated list of unsigned integers but " - "found '%s'"), sched_cpu_affinity); - goto cleanup; - } + if (!(afflist = virStringSplitCount(sched_cpu_affinity, ",", 0, &naffs))) + goto cleanup; - if (number >= VIR_DOMAIN_CPUMASK_LEN) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("VMX entry 'sched.cpu.affinity' contains a %d, " - "this value is too large"), number); - goto cleanup; - } + if (naffs < numvcpus) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Expecting VMX entry 'sched.cpu.affinity' to contain " + "at least as many values as 'numvcpus' (%lld) but " + "found only %zu value(s)"), numvcpus, naffs); + goto cleanup; + } - ignore_value(virBitmapSetBit(def->cpumask, number)); - ++count; + for (aff = afflist; *aff; aff++) { + const char *current = *aff; + unsigned int number; + int rc; + virSkipSpaces(¤t); + rc = virStrToLong_uip(current, (char **) ¤t, 10, &number); virSkipSpaces(¤t); - if (*current == ',') { - ++current; - } else if (*current == '\0') { - break; - } else { + if (rc < 0 || *current != '\0') { virReportError(VIR_ERR_INTERNAL_ERROR, _("Expecting VMX entry 'sched.cpu.affinity' to be " "a comma separated list of unsigned integers but " @@ -1544,15 +1536,7 @@ virVMXParseConfig(virVMXContext *ctx, goto cleanup; } - virSkipSpaces(¤t); - } - - if (count < numvcpus) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Expecting VMX entry 'sched.cpu.affinity' to contain " - "at least as many values as 'numvcpus' (%lld) but " - "found only %d value(s)"), numvcpus, count); - goto cleanup; + ignore_value(virBitmapSetBit(def->cpumask, number)); } } -- 2.20.1

On Wed, Apr 03, 2019 at 02:44:52PM +0200, Peter Krempa wrote:
Parsing of the cpu affinity list was using virParseNumber. Modernize it to get rid of the virParseNumber call.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/vmx/vmx.c | 56 ++++++++++++++++++--------------------------------- 1 file changed, 20 insertions(+), 36 deletions(-)
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 429630faaf..70d9443766 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1500,43 +1500,35 @@ virVMXParseConfig(virVMXContext *ctx, + if (!(afflist = virStringSplitCount(sched_cpu_affinity, ",", 0, &naffs))) + goto cleanup;
- if (number >= VIR_DOMAIN_CPUMASK_LEN) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("VMX entry 'sched.cpu.affinity' contains a %d, " - "this value is too large"), number); - goto cleanup; - }
Even though an entry greater than VIR_DOMAIN_CPUMASK_LEN is unlikely, I don't think a refactor should remove this check
+ if (naffs < numvcpus) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Expecting VMX entry 'sched.cpu.affinity' to contain " + "at least as many values as 'numvcpus' (%lld) but " + "found only %zu value(s)"), numvcpus, naffs); + goto cleanup; + }
- ignore_value(virBitmapSetBit(def->cpumask, number)); - ++count; + for (aff = afflist; *aff; aff++) { + const char *current = *aff; + unsigned int number;
With the check left in: Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/rpc/virnetlibsshsession.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c index b9143239b9..039d8a278c 100644 --- a/src/rpc/virnetlibsshsession.c +++ b/src/rpc/virnetlibsshsession.c @@ -157,6 +157,7 @@ static int virNetLibsshSessionOnceInit(void) { const char *dbgLevelStr; + int dbgLevel; if (!VIR_CLASS_NEW(virNetLibsshSession, virClassForObjectLockable())) return -1; @@ -172,10 +173,9 @@ virNetLibsshSessionOnceInit(void) #endif dbgLevelStr = virGetEnvAllowSUID("LIBVIRT_LIBSSH_DEBUG"); - if (dbgLevelStr) { - int dbgLevel = virParseNumber(&dbgLevelStr); + if (dbgLevelStr && + virStrToLong_i(dbgLevelStr, NULL, 10, &dbgLevel) >= 0) ssh_set_log_level(dbgLevel); - } return 0; } -- 2.20.1

On Wed, Apr 03, 2019 at 02:44:53PM +0200, Peter Krempa wrote:
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/rpc/virnetlibsshsession.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

We have more modern replacements. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/libvirt_private.syms | 1 - src/util/virutil.c | 31 ------------------------------- src/util/virutil.h | 1 - 3 files changed, 33 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index d61c772d1a..72a378f21a 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -3222,7 +3222,6 @@ virIsSUID; virMemoryLimitIsSet; virMemoryLimitTruncate; virMemoryMaxValue; -virParseNumber; virParseOwnershipIds; virParseVersionString; virScaleInteger; diff --git a/src/util/virutil.c b/src/util/virutil.c index c0acf59831..3f214629ac 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -278,37 +278,6 @@ virScaleInteger(unsigned long long *value, const char *suffix, } -/** - * virParseNumber: - * @str: pointer to the char pointer used - * - * Parse an unsigned number - * - * Returns the unsigned number or -1 in case of error. @str will be - * updated to skip the number. - */ -int -virParseNumber(const char **str) -{ - int ret = 0; - const char *cur = *str; - - if ((*cur < '0') || (*cur > '9')) - return -1; - - while (c_isdigit(*cur)) { - unsigned int c = *cur - '0'; - - if ((ret > INT_MAX / 10) || - ((ret == INT_MAX / 10) && (c > INT_MAX % 10))) - return -1; - ret = ret * 10 + c; - cur++; - } - *str = cur; - return ret; -} - /** * virParseVersionString: * @str: const char pointer to the version string diff --git a/src/util/virutil.h b/src/util/virutil.h index a80e28b670..e537cc36cb 100644 --- a/src/util/virutil.h +++ b/src/util/virutil.h @@ -54,7 +54,6 @@ int virScaleInteger(unsigned long long *value, const char *suffix, int virHexToBin(unsigned char c); -int virParseNumber(const char **str); int virParseVersionString(const char *str, unsigned long *version, bool allowMissing); -- 2.20.1

On Wed, Apr 03, 2019 at 02:44:54PM +0200, Peter Krempa wrote:
We have more modern replacements.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/libvirt_private.syms | 1 - src/util/virutil.c | 31 ------------------------------- src/util/virutil.h | 1 - 3 files changed, 33 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano
participants (2)
-
Ján Tomko
-
Peter Krempa