kernel: Serial numbers have to be either 2 chars minimum or not be a blank.
authorSascha Wildner <saw@online.de>
Wed, 8 Dec 2010 00:50:07 +0000 (01:50 +0100)
committerSascha Wildner <saw@online.de>
Wed, 8 Dec 2010 00:50:07 +0000 (01:50 +0100)
The hptiop(4) controller's logical disks have a " " (single space)
serial number, which caused /dev/serno/_ to be created.

sys/kern/subr_disk.c

index f30df63..1528898 100644 (file)
@@ -704,7 +704,8 @@ _setdiskinfo(struct disk *disk, struct disk_info *info)
         * The serial number is duplicated so the caller can throw
         * their copy away.
         */
-       if (info->d_serialno && info->d_serialno[0]) {
+       if (info->d_serialno && info->d_serialno[0] &&
+           (info->d_serialno[0] != ' ' || strlen(info->d_serialno) > 1)) {
                info->d_serialno = kstrdup(info->d_serialno, M_TEMP);
                disk_cleanserial(info->d_serialno);
                if (disk->d_cdev) {