From 18db9bdc482630b85676fbcba8e35e23b4ec16ae Mon Sep 17 00:00:00 2001 From: ewt Date: Fri, 29 Mar 1996 19:24:52 +0000 Subject: [PATCH] handles headers with no state properly CVS patchset: 496 CVS date: 1996/03/29 19:24:52 --- query.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/query.c b/query.c index 13bcca2..5d52397 100644 --- a/query.c +++ b/query.c @@ -114,8 +114,10 @@ static void printHeader(Header h, int queryFlags) { &count)) { puts("(contains no files)"); } else { - getEntry(h, RPMTAG_FILESTATES, &type, - (void **) &fileStatesList, &count); + if (!getEntry(h, RPMTAG_FILESTATES, &type, + (void **) &fileStatesList, &count)) { + fileStatesList = NULL; + } getEntry(h, RPMTAG_FILEFLAGS, &type, (void **) &fileFlagsList, &count); getEntry(h, RPMTAG_FILESIZES, &type, @@ -148,13 +150,17 @@ static void printHeader(Header h, int queryFlags) { if (!isVerbose()) { prefix ? fputs(prefix, stdout) : 0; if (queryFlags & QUERY_FOR_STATE) { - switch (fileStatesList[i]) { - case RPMFILE_STATE_NORMAL: - fputs("normal ", stdout); break; - case RPMFILE_STATE_REPLACED: - fputs("replaced ", stdout); break; - default: - fputs("unknown ", stdout); + if (fileStatesList) { + switch (fileStatesList[i]) { + case RPMFILE_STATE_NORMAL: + fputs("normal ", stdout); break; + case RPMFILE_STATE_REPLACED: + fputs("replaced ", stdout); break; + default: + fputs("unknown ", stdout); + } + } else { + fputs("(no state) ", stdout); } } -- 2.7.4