chiark / gitweb /
[PATCH] Add format modifier for devfs like naming
[elogind.git] / namedev.c
index 83852f9df29abc52e9cac65140f353b750881b0a..d183a3632980e9e4b07a69e4e3865668d1ae5bb7 100644 (file)
--- a/namedev.c
+++ b/namedev.c
@@ -464,6 +464,10 @@ static int namedev_init_permissions(void)
                }
                strncpy(dev.group, temp2, sizeof(dev.owner));
 
+               if (!temp) {
+                       dbg("cannot parse line: %s", line);
+                       continue;
+               }
                dev.mode = strtol(temp, NULL, 8);
 
                dbg_parse("name='%s', owner='%s', group='%s', mode=%#o",
@@ -523,6 +527,15 @@ static void apply_format(struct udevice *udev, unsigned char *string)
                                strcat(pos, udev->kernel_number);
                                dbg("substitute kernel number '%s'", udev->kernel_number);
                                break;
+                       case 'D':
+                               if (strlen(udev->kernel_number) == 0) {
+                                       strcat(pos, "disk");
+                                       break;
+                               }
+                               strcat(pos, "part");
+                               strcat(pos, udev->kernel_number);
+                               dbg("substitute kernel number '%s'", udev->kernel_number);
+                               break;
                        case 'm':
                                sprintf(pos, "%u", udev->minor);
                                dbg("substitute minor number '%u'", udev->minor);