[sheepdog] [PATCH v2] dog:fix dog command misinterpretation when characters are mixed in a -p option
Yuichi Bando
bando.yuichi at lab.ntt.co.jp
Mon Apr 21 05:00:23 CEST 2014
This bug is reported in https://bugs.launchpad.net/sheepdog-project/+bug/1309301
I added a check code if the port number (specified in -p option) is numeric or not.
=== Bug Description ===
I found that dog command misinterprets when characters are mixed in a numeric option.
Here's the example.
$dog vdi list -p 7X000
Name Id Size Used Shared Creation time VDI id Copies Tag
failed to connect to 127.0.0.1:7: Connection refused
failed to connect to 127.0.0.1:7: Connection refused
dog interpreted "7X000" as "7".
I think that dog should output error message " Invalid port number '7X000' ".
=== After modified ===
$dog vdi list -p 7X000
Invalid port number '7X000'
Thanks
Yuichi Bando
Signed-off-by: Yuichi Bando <bando.yuichi at lab.ntt.co.jp>
---
dog/dog.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
v2: fix style
diff --git a/dog/dog.c b/dog/dog.c
index fbedd6d..7942b34 100644
--- a/dog/dog.c
+++ b/dog/dog.c
@@ -467,7 +467,8 @@ int main(int argc, char **argv)
break;
case 'p':
sdport = strtol(optarg, &p, 10);
- if (optarg == p || sdport < 1 || sdport > UINT16_MAX) {
+ if (optarg == p || sdport < 1 || sdport > UINT16_MAX
+ || !is_numeric(optarg)) {
sd_err("Invalid port number '%s'", optarg);
exit(EXIT_USAGE);
}
--
1.7.1
More information about the sheepdog
mailing list