- use makedev to get device number, else it gives wrong major/minor numbers to device...
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sun, 21 Jan 2007 14:36:25 +0000 (14:36 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sun, 21 Jan 2007 14:36:25 +0000 (14:36 -0000)
  Closes #919

target/makedevs/makedevs.c

index 4cf853dca8888f5ba646f8e27da9d550bf994328..8f4b192d1c281a62520e0e5a78b7fda9d1712330 100644 (file)
@@ -490,7 +490,7 @@ int main(int argc, char **argv)
                                full_name_inc = xmalloc(strlen(full_name) + 4);
                                for (i = start; i < count; i++) {
                                        sprintf(full_name_inc, "%s%d", full_name, i);
-                                       rdev = (major << 8) + minor + (i * increment - start);
+                                       rdev = makedev(major, minor + (i * increment - start));
                                        if (mknod(full_name_inc, mode, rdev) == -1) {
                                                bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc);
                                                ret = EXIT_FAILURE;
@@ -506,7 +506,7 @@ int main(int argc, char **argv)
                                }
                                free(full_name_inc);
                        } else {
-                               rdev = (major << 8) + minor;
+                               rdev = makedev(major, minor);
                                if (mknod(full_name, mode, rdev) == -1) {
                                        bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name);
                                        ret = EXIT_FAILURE;