udev-builtin-net_id: fix construction of USB specifier-based names
Commit 0bac1ed242 ("tree-wide: Fix constness issues with newer glibc")
split a temporary var in get_usb_specifier to const and non-const
versions, but missed converting a couple of uses. This means we get
names of with components of:
port: uN
config: cC.I
interface: iC.I
instead of:
port: uN
config: cC
interface: iI
This results in net names like enu1c1.0i1.0, as we also no longer hit
the config==1 and interf==0 elision cases.
Change the config portion handling to start from the correct position,
and the earlier check for NULL.
This commit is contained in:
@@ -969,14 +969,14 @@ static int get_usb_specifier(sd_device *dev, char **ret) {
|
||||
|
||||
ports = strdupa_safe(s + 1);
|
||||
char *t = strchr(ports, ':');
|
||||
if (!s)
|
||||
if (!t)
|
||||
return log_device_debug_errno(dev, SYNTHETIC_ERRNO(EINVAL),
|
||||
"sysname \"%s\" does not have ':' in the expected place.", sysname);
|
||||
|
||||
*t = '\0';
|
||||
config = t + 1;
|
||||
s = strchr(config, '.');
|
||||
if (!s)
|
||||
t = strchr(config, '.');
|
||||
if (!t)
|
||||
return log_device_debug_errno(dev, SYNTHETIC_ERRNO(EINVAL),
|
||||
"sysname \"%s\" does not have '.' in the expected place.", sysname);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user