diff -ruN cpio-2.9.90.orig/NEWS cpio-2.9.90/NEWS --- cpio-2.9.90.orig/NEWS 2008-02-08 10:35:29.000000000 +0100 +++ cpio-2.9.90/NEWS 2008-07-18 10:56:09.000000000 +0200 @@ -7,6 +7,7 @@ Version 2.9.90 (CVS) * Support MinGW builds (thanks to Robert Millan) +* Support major/minor device numbers over 127 (rhbz #450109) Version 2.9 - Sergey Poznyakoff, 2007-06-28 diff -ruN cpio-2.9.90.orig/src/copyin.c cpio-2.9.90/src/copyin.c --- cpio-2.9.90.orig/src/copyin.c 2008-07-11 13:20:27.000000000 +0200 +++ cpio-2.9.90/src/copyin.c 2008-07-18 10:55:58.000000000 +0200 @@ -1269,15 +1269,15 @@ swab_array ((char *) short_hdr, 13); } - file_hdr->c_dev_maj = major (short_hdr->c_dev); - file_hdr->c_dev_min = minor (short_hdr->c_dev); + file_hdr->c_dev_maj = major ((unsigned short)short_hdr->c_dev); + file_hdr->c_dev_min = minor ((unsigned short)short_hdr->c_dev); file_hdr->c_ino = short_hdr->c_ino; file_hdr->c_mode = short_hdr->c_mode; file_hdr->c_uid = short_hdr->c_uid; file_hdr->c_gid = short_hdr->c_gid; file_hdr->c_nlink = short_hdr->c_nlink; - file_hdr->c_rdev_maj = major (short_hdr->c_rdev); - file_hdr->c_rdev_min = minor (short_hdr->c_rdev); + file_hdr->c_rdev_maj = major ((unsigned short)short_hdr->c_rdev); + file_hdr->c_rdev_min = minor ((unsigned short)short_hdr->c_rdev); file_hdr->c_mtime = (unsigned long) short_hdr->c_mtimes[0] << 16 | short_hdr->c_mtimes[1];