mdev: fix a bug where we were eating argv[0] of helper

diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index 9d37b6c..5e1cd36 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -156,43 +156,45 @@
 			mode = strtoul(val, NULL, 8);
 
 			/* 4th field (opt): >alias */
-			if (ENABLE_FEATURE_MDEV_RENAME) {
-				if (!next)
-					break;
+#if ENABLE_FEATURE_MDEV_RENAME
+			if (!next)
+				break;
+			if (*next == '>') {
+#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
+				char *s, *p;
+				unsigned i, n;
+
 				val = next;
 				next = next_field(val);
-				if (*val == '>') {
-#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
-					/* substitute %1..9 with off[1..9], if any */
-					char *s, *p;
-					unsigned i, n;
+				/* substitute %1..9 with off[1..9], if any */
+				n = 0;
+				s = val;
+				while (*s && *s++ == '%')
+					n++;
 
-					n = 0;
-					s = val;
-					while (*s && *s++ == '%')
-						n++;
-
-					p = alias = xzalloc(strlen(val) + n * strlen(device_name));
-					s = val + 1;
-					while (*s) {
-						*p = *s;
-						if ('%' == *s) {
-							i = (s[1] - '0');
-							if (i <= 9 && off[i].rm_so >= 0) {
-								n = off[i].rm_eo - off[i].rm_so;
-								strncpy(p, device_name + off[i].rm_so, n);
-								p += n - 1;
-								s++;
-							}
+				p = alias = xzalloc(strlen(val) + n * strlen(device_name));
+				s = val + 1;
+				while (*s) {
+					*p = *s;
+					if ('%' == *s) {
+						i = (s[1] - '0');
+						if (i <= 9 && off[i].rm_so >= 0) {
+							n = off[i].rm_eo - off[i].rm_so;
+							strncpy(p, device_name + off[i].rm_so, n);
+							p += n - 1;
+							s++;
 						}
-						p++;
-						s++;
 					}
-#else
-					alias = xstrdup(val + 1);
-#endif
+					p++;
+					s++;
 				}
+#else
+				val = next;
+				next = next_field(val);
+				alias = xstrdup(val + 1);
+#endif
 			}
+#endif /* ENABLE_FEATURE_MDEV_RENAME */
 
 			/* The rest (opt): command to run */
 			if (!next)