[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: