- use makedev to get device number, else it gives wrong major/minor numbers to devices files on systems which use big device numbers.

Closes #919
This commit is contained in:
Bernhard Reutner-Fischer 2007-01-21 11:20:01 +00:00
parent 2f0c0d0b88
commit 7b1f23610f

View File

@ -185,7 +185,7 @@ int makedevs_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: cannot create node %s", linenum, full_name_inc);
ret = EXIT_FAILURE;
@ -201,7 +201,7 @@ int makedevs_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: cannot create node %s", linenum, full_name);
ret = EXIT_FAILURE;