From cb55d5c6cd129c37b25670c77704c396307ffb15 Mon Sep 17 00:00:00 2001 From: jbj Date: Mon, 7 May 2001 01:54:56 +0000 Subject: [PATCH] - fix: debugging message displays header keys (#38454). CVS patchset: 4747 CVS date: 2001/05/07 01:54:56 --- CHANGES | 1 + lib/rpmdb.c | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index b582d29..8a5d133 100644 --- a/CHANGES +++ b/CHANGES @@ -43,6 +43,7 @@ - still more boring lclint annotations and fiddles. - enough lclint annotations and fiddles already. - fix: specfile queries with BuildArch: (#27589). + - fix: debugging message displays header keys (#38454). 4.0 -> 4.0.[12] - add doxygen and lclint annotations most everywhere. diff --git a/lib/rpmdb.c b/lib/rpmdb.c index f8d1b97..20200fa 100644 --- a/lib/rpmdb.c +++ b/lib/rpmdb.c @@ -197,13 +197,15 @@ INLINE int dbiGet(dbiIndex dbi, DBC * dbcursor, void ** keypp, size_t * keylenp, if (_debug < 0 || dbi->dbi_debug) { char keyval[32]; int dataval = 0xdeadbeef; -if (dbi->dbi_rpmtag == RPMDBI_PACKAGES && keypp && *keypp && keylenp && *keylenp >= sizeof(keyval)) { - int keyint; +if (dbi->dbi_rpmtag == RPMDBI_PACKAGES && keypp && *keypp && keylenp && *keylenp <= sizeof(int)) { + int keyint = 0; memcpy(&keyint, *keypp, sizeof(keyint)); - sprintf(keyval, "%d", keyint); + sprintf(keyval, "#%d", keyint); } else keyval[0] = '\0'; -if (rc == 0 && datapp && *datapp && datalenp && *datalenp >= sizeof(dataval)) +if (rc == 0 && datapp && *datapp && datalenp && *datalenp >= sizeof(dataval)) { memcpy(&dataval, *datapp, sizeof(dataval)); + dataval = ntohl(dataval); +} fprintf(stderr, " Get %s key (%p,%ld) data (%p,%ld) \"%s\" %x rc %d\n", tagName(dbi->dbi_rpmtag), *keypp, (long)*keylenp, *datapp, (long)*datalenp, (dbi->dbi_rpmtag != RPMDBI_PACKAGES ? (char *)*keypp : keyval), (unsigned)dataval, rc); -- 2.7.4