From f775d29e7ac8eda68f2d19998a615f2d151f65f6 Mon Sep 17 00:00:00 2001 From: "Vladimir D. Seleznev" Date: Fri, 5 Jan 2018 02:54:40 +0300 Subject: [PATCH 2/2] remap inode numbers (ALT#34398) Signed-off-by: Vladimir D. Seleznev --- build/files.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/build/files.c b/build/files.c index e39ebd3..6113ac6 100644 --- a/build/files.c +++ b/build/files.c @@ -1151,7 +1151,19 @@ static void genCpioListAndHeader(Spec spec, /*@partial@*/ FileList fl, } if (sizeof(flp->fl_ino) != sizeof(uint_32)) { - uint_32 ino = (uint_32)flp->fl_ino; + uint_32 ino; + if (flp->fl_mode & S_IFMT != S_IFREG || flp->fl_nlink == 1 || i == 0) + ino = (uint_32)i; + else { + FileListRec tmp; + for (int j = 0; j <= i; j++) { + tmp = fl->fileList + j; + if (flp->fl_ino == tmp->fl_ino) { + ino = (uint_32)j; + break; + } + } + } (void) headerAddOrAppendEntry(h, RPMTAG_FILEINODES, RPM_INT32_TYPE, &(ino), 1); } else { -- 2.10.4