Blob Blame History Raw
From 06a5b99f71c4b160a67d085b6fc106b07ce0bee3 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 8 Jan 2015 01:59:58 +0100
Subject: [PATCH] udevadm: don't hit an assert when obsolete parameters are
 passed

https://bugzilla.redhat.com/show_bug.cgi?id=1178051
(cherry picked from commit 2ac23519d04835e8d8dfbce3d08d9ff76db58a68)
---
 src/udev/udevadm-settle.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c
index ddcf1ddf9a..7d78e6d0d3 100644
--- a/src/udev/udevadm-settle.c
+++ b/src/udev/udevadm-settle.c
@@ -45,12 +45,12 @@ static void help(void) {
 
 static int adm_settle(struct udev *udev, int argc, char *argv[]) {
         static const struct option options[] = {
-                { "seq-start",      required_argument, NULL, '\0' }, /* removed */
-                { "seq-end",        required_argument, NULL, '\0' }, /* removed */
                 { "timeout",        required_argument, NULL, 't' },
                 { "exit-if-exists", required_argument, NULL, 'E' },
-                { "quiet",          no_argument,       NULL, 'q' },  /* removed */
                 { "help",           no_argument,       NULL, 'h' },
+                { "seq-start",      required_argument, NULL, 's' }, /* removed */
+                { "seq-end",        required_argument, NULL, 'e' }, /* removed */
+                { "quiet",          no_argument,       NULL, 'q' }, /* removed */
                 {}
         };
         const char *exists = NULL;
@@ -60,8 +60,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) {
         struct udev_queue *queue;
         int rc = EXIT_FAILURE;
 
-        while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) {
+        while ((c = getopt_long(argc, argv, "t:E:hs:e:q", options, NULL)) >= 0) {
                 switch (c) {
+
                 case 't': {
                         int r;
 
@@ -73,14 +74,24 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) {
                         };
                         break;
                 }
+
                 case 'E':
                         exists = optarg;
                         break;
+
                 case 'h':
                         help();
                         return EXIT_SUCCESS;
+
+                case 's':
+                case 'e':
+                case 'q':
+                        log_info("Option -%c no longer supported.", c);
+                        return EXIT_FAILURE;
+
                 case '?':
                         return EXIT_FAILURE;
+
                 default:
                         assert_not_reached("Unknown argument");
                 }