0ce6cf
From: Kamil Dudka <kdudka@redhat.com>
0ce6cf
Date: Mon, 14 Sep 2015 09:37:15 +0200
0ce6cf
Subject: [PATCH 3/7] Support major/minor device numbers over 127 (bz#450109)
0ce6cf
0ce6cf
diff --git a/src/copyin.c b/src/copyin.c
0ce6cf
index cde911e..12bd27c 100644
0ce6cf
--- a/src/copyin.c
0ce6cf
+++ b/src/copyin.c
0ce6cf
@@ -1196,15 +1196,15 @@ read_in_binary (struct cpio_file_stat *file_hdr,
0ce6cf
       swab_array ((char *) short_hdr, 13);
0ce6cf
     }
0ce6cf
 
0ce6cf
-  file_hdr->c_dev_maj = major (short_hdr->c_dev);
0ce6cf
-  file_hdr->c_dev_min = minor (short_hdr->c_dev);
0ce6cf
+  file_hdr->c_dev_maj = major ((unsigned short)short_hdr->c_dev);
0ce6cf
+  file_hdr->c_dev_min = minor ((unsigned short)short_hdr->c_dev);
0ce6cf
   file_hdr->c_ino = short_hdr->c_ino;
0ce6cf
   file_hdr->c_mode = short_hdr->c_mode;
0ce6cf
   file_hdr->c_uid = short_hdr->c_uid;
0ce6cf
   file_hdr->c_gid = short_hdr->c_gid;
0ce6cf
   file_hdr->c_nlink = short_hdr->c_nlink;
0ce6cf
-  file_hdr->c_rdev_maj = major (short_hdr->c_rdev);
0ce6cf
-  file_hdr->c_rdev_min = minor (short_hdr->c_rdev);
0ce6cf
+  file_hdr->c_rdev_maj = major ((unsigned short)short_hdr->c_rdev);
0ce6cf
+  file_hdr->c_rdev_min = minor ((unsigned short)short_hdr->c_rdev);
0ce6cf
   file_hdr->c_mtime = (unsigned long) short_hdr->c_mtimes[0] << 16
0ce6cf
                       | short_hdr->c_mtimes[1];
0ce6cf