From dbc1f4ccf66451568a0a6b6ffd4252475a30b341 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Wed, 28 Jan 2009 16:34:06 +0200 Subject: [PATCH] Don't throw away modified config files on cross-hash upgrades (rhbz#479869) - different digest types can't be compared, take a backup to avoid data loss - Patch from Miloslav Trmac --- lib/rpmfi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rpmfi.c b/lib/rpmfi.c index 10ef83b..4b34763 100644 --- a/lib/rpmfi.c +++ b/lib/rpmfi.c @@ -667,9 +667,9 @@ rpmFileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing) return FA_CREATE; /* unmodified config file, replace. */ } ndigest = rpmfiFDigest(nfi, &nalgo, &ndiglen); - /* XXX can't compare different hash types, what should we do here? */ + /* Can't compare different hash types, backup to avoid data loss */ if (oalgo != nalgo || odiglen != ndiglen) - return FA_CREATE; + return save; if (odigest && ndigest && !memcmp(odigest, ndigest, odiglen)) return FA_SKIP; /* identical file, don't bother. */ } else /* dbWhat == LINK */ { -- 2.7.4