PATCH: fix for 'extended' device numbers
tested internally where we have devices w/ minor numbers *much*
greater than 255.
\p
From 3e5a78db7401e93a5c6ccc5a3d0dc667e9ff300c Mon Sep 17 00:00:00 2001
From: peter chang <dpf@google.com>
Date: Wed, 18 Dec 2013 17:14:07 -0800
Subject: [PATCH] use makedev(3) rather than shifts to construct the dev_t so
that 'large' major/minor nodes are supported.
Signed-off-by: peter chang <dpf@google.com>
---
lib/dpkg/tarfn.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/dpkg/tarfn.c b/lib/dpkg/tarfn.c
index da941a8..84cc73c 100644
--- a/lib/dpkg/tarfn.c
+++ b/lib/dpkg/tarfn.c
@@ -179,8 +179,8 @@ tar_header_decode(struct tar_header *h, struct tar_entry *d)
d->stat.mode = get_unix_mode(h);
d->size = (off_t)OtoM(h->size, sizeof(h->size));
d->mtime = (time_t)OtoM(h->mtime, sizeof(h->mtime));
- d->dev = ((OtoM(h->devmajor, sizeof(h->devmajor)) & 0xff) << 8) |
- (OtoM(h->devminor, sizeof(h->devminor)) & 0xff);
+ d->dev = makedev(OtoM(h->devmajor, sizeof(h->devmajor)),
+ OtoM(h->devminor, sizeof(h->devminor)));
if (*h->user)
passwd = getpwnam(h->user);
--
1.8.5.1
Reply to: