From 3b4eb33882d86b09956d5ab8d397945349d5e5f2 Mon Sep 17 00:00:00 2001 From: Tim Kientzle Date: Sat, 11 Dec 2004 07:11:42 +0000 Subject: [PATCH] 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 --- lib/libarchive/archive_entry.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libarchive/archive_entry.c b/lib/libarchive/archive_entry.c index db92789bacd..8c52aa54978 100644 --- a/lib/libarchive/archive_entry.c +++ b/lib/libarchive/archive_entry.c @@ -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