Use vshCommandOptLongLong() instead of retrieving the value as a
string and converting it to a number manually.
---
tools/virsh-domain.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 10d01b6..36f3e6c 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -8262,7 +8262,6 @@ cmdSendProcessSignal(vshControl *ctl, const vshCmd *cmd)
{
virDomainPtr dom;
bool ret = false;
- const char *pidstr;
const char *signame;
long long pid_value;
int signum;
@@ -8270,17 +8269,16 @@ cmdSendProcessSignal(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
return false;
- if (vshCommandOptStringReq(ctl, cmd, "pid", &pidstr) < 0)
+ if (vshCommandOptLongLong(cmd, "pid", &pid_value) < 0) {
+ vshError(ctl,
+ _("Numeric value for <%s> option is malformed or out of
range"),
+ "pid");
goto cleanup;
+ }
if (vshCommandOptStringReq(ctl, cmd, "signame", &signame) < 0)
goto cleanup;
- if (virStrToLong_ll(pidstr, NULL, 10, &pid_value) < 0) {
- vshError(ctl, _("malformed PID value: %s"), pidstr);
- goto cleanup;
- }
-
if ((signum = getSignalNumber(ctl, signame)) < 0) {
vshError(ctl, _("malformed signal name: %s"), signame);
goto cleanup;
--
2.1.0