verification fix for systems where a single gid maps to multiple gnames
authorewt <devnull@localhost>
Tue, 14 Oct 1997 15:20:39 +0000 (15:20 +0000)
committerewt <devnull@localhost>
Tue, 14 Oct 1997 15:20:39 +0000 (15:20 +0000)
CVS patchset: 1852
CVS date: 1997/10/14 15:20:39

lib/verify.c

index 3f3fa88..545bf7a 100644 (file)
@@ -34,6 +34,7 @@ int rpmVerifyFile(char * prefix, Header h, int filenum, int * result,
     char * fileStatesList;
     char * filespec;
     char * name;
+    gid_t gid;
     int type, count, rc;
     struct stat sb;
     unsigned char md5sum[40];
@@ -192,8 +193,8 @@ int rpmVerifyFile(char * prefix, Header h, int filenum, int * result,
     if (flags & RPMVERIFY_GROUP) {
        if (headerGetEntry(h, RPMTAG_FILEGROUPNAME, NULL, (void **) &gnameList, 
                        NULL)) {
-           name = gidToGname(sb.st_gid);
-           if (!name || strcmp(gnameList[filenum], name))
+           rc =  gnameToGid(gnameList[filenum],&gid);
+           if (rc || (gid != sb.st_gid))
                *result |= RPMVERIFY_GROUP;
            free(gnameList);
        } else if (headerGetEntry(h, RPMTAG_FILEGIDS, NULL, (void **) &gidList,