diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c index fbed496c4e..de284d60fe 100644 --- a/src/udev/udev-builtin.c +++ b/src/udev/udev-builtin.c @@ -105,7 +105,9 @@ UdevBuiltinCommand udev_builtin_lookup(const char *command) { command += strspn(command, WHITESPACE); n = strcspn(command, WHITESPACE); for (UdevBuiltinCommand i = 0; i < _UDEV_BUILTIN_MAX; i++) - if (builtins[i] && strneq(builtins[i]->name, command, n)) + if (builtins[i] && + strlen(builtins[i]->name) == n && + strneq(builtins[i]->name, command, n)) return i; return _UDEV_BUILTIN_INVALID; diff --git a/test/units/TEST-17-UDEV.sanity-check.sh b/test/units/TEST-17-UDEV.sanity-check.sh index 18326c03ad..c0bd2b1565 100755 --- a/test/units/TEST-17-UDEV.sanity-check.sh +++ b/test/units/TEST-17-UDEV.sanity-check.sh @@ -178,6 +178,8 @@ udevadm test -h # Builtins (! udevadm test-builtin aaaaa /dev/null) +(! udevadm test-builtin k /dev/null) +(! udevadm test-builtin key /dev/null) udevadm test-builtin blkid "$loopdev" (! udevadm test-builtin "btrfs" "$loopdev") (! udevadm test-builtin "btrfs aaaaa" "$loopdev")