Skip to contentSkip to conversation

xl: fix network-detach command line parsing

PATCH New Jeremy Fitzhardinge 1 participant 1 message Jun 2, 2010

lore
Share & tools
lore
#0 lore raw

PATCH 3/3 xl: fix network-detach command line parsing

Command line arguments start at argv[2]. Also, exit(1) on failure.

tools/libxl/xl_cmdimpl.c +10 -9
diff -r bb9d52825bae tools/libxl/xl_cmdimpl.c
@@ -3436,11 +3436,11 @@
     int opt;
     libxl_device_nic nic;
 
-    if (argc != 3) {
+    if (argc != 4) {
         help("network-detach");
         exit(0);
     }
-    while ((opt = getopt(argc, argv, "hl")) != -1) {
+    while ((opt = getopt(argc, argv, "h")) != -1) {
         switch (opt) {
         case 'h':
             help("network-detach");
@@ -3451,24 +3451,25 @@
         }
     }
 
-    if (domain_qualifier_to_domid(argv[1], &domid, 0) < 0) {
-        fprintf(stderr, "%s is an invalid domain identifier\n", argv[1]);
+    if (domain_qualifier_to_domid(argv[2], &domid, 0) < 0) {
+        fprintf(stderr, "%s is an invalid domain identifier\n", argv[2]);
         exit(1);
     }
 
-    if (!strchr(argv[2], ':')) {
-        if (libxl_devid_to_device_nic(&ctx, domid, argv[2], &nic)) {
-            fprintf(stderr, "Unknown device %s.\n", argv[2]);
+    if (!strchr(argv[3], ':')) {
+        if (libxl_devid_to_device_nic(&ctx, domid, argv[3], &nic)) {
+            fprintf(stderr, "Unknown device %s.\n", argv[3]);
             exit(1);
         }
     } else {
-        if (libxl_mac_to_device_nic(&ctx, domid, argv[2], &nic)) {
-            fprintf(stderr, "Unknown device %s.\n", argv[2]);
+        if (libxl_mac_to_device_nic(&ctx, domid, argv[3], &nic)) {
+            fprintf(stderr, "Unknown device %s.\n", argv[3]);
             exit(1);
         }
     }
     if (libxl_device_nic_del(&ctx, &nic, 1)) {
         fprintf(stderr, "libxl_device_nic_del failed.\n");
+        exit(1);
     }
     exit(0);
 }