Be more careful about assembling/disassembling

device numbers.  In particular, this should fix
a bug where archiving a device node with a very
large minor number would sometimes overflow and
corrupt the major number.

Thanks to: Ben Mesander
MFC after: 7 days
This commit is contained in:
Tim Kientzle 2004-12-11 07:11:42 +00:00
parent 3579953091
commit 3b4eb33882

View File

@ -609,7 +609,7 @@ archive_entry_set_rdevmajor(struct archive_entry *entry, dev_t m)
dev_t d;
d = entry->ae_stat.st_rdev;
entry->ae_stat.st_rdev = makedev(m, minor(d));
entry->ae_stat.st_rdev = makedev(major(m), minor(d));
}
void
@ -618,7 +618,7 @@ archive_entry_set_rdevminor(struct archive_entry *entry, dev_t m)
dev_t d;
d = entry->ae_stat.st_rdev;
entry->ae_stat.st_rdev = makedev( major(d), m);
entry->ae_stat.st_rdev = makedev(major(d), minor(m));
}
void