lclint annotations.
authorjbj <devnull@localhost>
Thu, 31 May 2001 19:02:55 +0000 (19:02 +0000)
committerjbj <devnull@localhost>
Thu, 31 May 2001 19:02:55 +0000 (19:02 +0000)
CVS patchset: 4821
CVS date: 2001/05/31 19:02:55

python/.lclintrc [new file with mode: 0644]
python/Makefile.am
python/Makefile.in
python/hash.c
python/hash.h
python/rpmmodule.c
python/upgrade.c

diff --git a/python/.lclintrc b/python/.lclintrc
new file mode 100644 (file)
index 0000000..cc7d9ac
--- /dev/null
@@ -0,0 +1,36 @@
+-I. -I.. -I../lib -I../rpmdb -I../rpmio -I../popt -DHAVE_CONFIG_H -D_GNU_SOURCE
+
++partial
+
+-warnunixlib
+-warnposix
+
++unixlib
+
+# XXX ignore doxygen markings
+-unrecogcomments
+
+# don't-bother-me-yet parameters
+-branchstate           # ~39
+-mustfree              # ~325
+
+# not-yet normal parameters
+-boolops               # ~351 w->n
+-predboolint           # ~200 w->n
+-type                  # ~271
+
+# -weak paramaters
+#+boolint
+#-boolops
+#+ignorequals
+#+ignoresigns
+#-mustfree
+#+longintegral
+#+matchanyintegral
+#-nullpass
+#-observertrans
+#-predboolint
+#-predboolothers
+#-retvalint
+#-retvalother
+#-shiftsigned
index a5ba09f..997126a 100644 (file)
@@ -30,3 +30,7 @@ librpmmodule_la_SOURCES = rpmmodule.c hash.c upgrade.c
 
 rpmmodule.so: $(librpmmodule_la_OBJECTS)
        $(LINK) -o $@ $^ $(rpmmodule_so_LDFLAGS)
+
+.PHONY:        lclint
+lclint:
+       lclint $(DEFS) $(INCLUDES) $(librpmmodule_la_SOURCES)
index 90cd1ec..185b33b 100644 (file)
@@ -474,6 +474,10 @@ mostlyclean distclean maintainer-clean
 rpmmodule.so: $(librpmmodule_la_OBJECTS)
        $(LINK) -o $@ $^ $(rpmmodule_so_LDFLAGS)
 
+.PHONY:        lclint
+lclint:
+       lclint $(DEFS) $(INCLUDES) $(librpmmodule_la_SOURCES)
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index e5e9811..00d7348 100644 (file)
@@ -68,7 +68,7 @@ void htFreeHashTable(struct hash_table *ht)
     free(ht);
 }
 
-void htHashStats(struct hash_table *t)
+void htHashStats(const struct hash_table *t)
 {
     int i = 0;
     int empty = 0;
@@ -89,13 +89,13 @@ void htHashStats(struct hash_table *t)
     printf("Avergage Depth: %f\n", (double)t->entries / (double)t->size);
 }
 
-static unsigned int htHashStrings(const char *s, const char *t)
+static unsigned int htHashStrings(const char * s, const char * t)
 {
     unsigned int res = 0;
 
-    while (*s)
+    while (*s != '\0')
        res = ((res<<1) + (int)(*(s++)));
-    while (*t)
+    while (*t != '\0')
        res = ((res<<1) + (int)(*(t++)));
 
     return res;
index 3538ed7..c609570 100644 (file)
@@ -15,9 +15,9 @@ struct ht_iterator {
 
 typedef struct ht_iterator htIterator;
 
-struct hash_table *htNewTable(int size);
-void htFreeHashTable(struct hash_table *ht);
-void htHashStats(struct hash_table *t);
+/*@only@*/ /*@null@*/ struct hash_table * htNewTable(int size);
+void htFreeHashTable(/*@only@*/ struct hash_table *ht);
+void htHashStats(const struct hash_table *t);
 int htInTable(struct hash_table *t,  const char * dir, const char * base);
 void htAddToTable(struct hash_table *t, const char * dir, const char * base);
 void htPrintHashStats(struct hash_table *t);
index 68e9241..147141c 100644 (file)
 
 extern int _rpmio_debug;
 
+#ifdef __LCLINT__
+#undef PyObject_HEAD
+#defin PyObject_HEAD   int _PyObjectHead
+#endif
+
 extern int mdfile(const char *fn, unsigned char *digest);
 
 void initrpm(void);
@@ -1267,7 +1272,7 @@ static PyObject * rpmtransRemove(rpmtransObject * s, PyObject * args) {
 /** \ingroup python
  */
 static PyObject * rpmtransDepCheck(rpmtransObject * s, PyObject * args) {
-    struct rpmDependencyConflict * conflicts;
+    struct rpmDependencyConflict_s * conflicts;
     int numConflicts;
     PyObject * list, * cf;
     int i;
@@ -1278,6 +1283,7 @@ static PyObject * rpmtransDepCheck(rpmtransObject * s, PyObject * args) {
     if (numConflicts) {
        list = PyList_New(0);
 
+       /* XXX TODO: rpmlib-4.0.3 can return multiple suggested packages. */
        for (i = 0; i < numConflicts; i++) {
            cf = Py_BuildValue("((sss)(ss)iOi)", conflicts[i].byName,
                               conflicts[i].byVersion, conflicts[i].byRelease,
@@ -1286,14 +1292,14 @@ static PyObject * rpmtransDepCheck(rpmtransObject * s, PyObject * args) {
                               conflicts[i].needsVersion,
 
                               conflicts[i].needsFlags,
-                              conflicts[i].suggestedPackage ?
-                                  conflicts[i].suggestedPackage : Py_None,
+                              conflicts[i].suggestedPackages ?
+                                  conflicts[i].suggestedPackages[0] : Py_None,
                               conflicts[i].sense);
            PyList_Append(list, (PyObject *) cf);
            Py_DECREF(cf);
        }
 
-       rpmdepFreeConflicts(conflicts, numConflicts);
+       conflicts = rpmdepFreeConflicts(conflicts, numConflicts);
 
        return list;
     }
index 73e9c07..d8488bc 100644 (file)
@@ -35,6 +35,9 @@ static void printMemStats(char *mess)
 }
 #endif
 
+/*@access Header@*/            /* compared with NULL. */
+/*@access rpmdbMatchIterator@*/        /* compared with NULL. */
+
 int pkgCompare(void * first, void * second);   /* XXX make gcc shut up. */
 int pkgCompare(void * first, void * second) {
     struct packageInfo ** a = first;
@@ -50,9 +53,9 @@ int pkgCompare(void * first, void * second) {
 
 /* Adds all files in the second file list which are not in the first
    file list to the hash table. */
-static void compareFileList(int availFileCount, char **availBaseNames,
+static void compareFileList(int availFileCount, char ** availBaseNames,
                            char ** availDirNames, int * availDirIndexes,
-                           int instFileCount, char **instBaseNames,
+                           int instFileCount, char ** instBaseNames,
                            char ** instDirNames, int * instDirIndexes,
                            struct hash_table *ht)
 {
@@ -115,7 +118,7 @@ static void addLostFiles(rpmdb db, struct pkgSet *psp, struct hash_table *ht)
     mi = rpmdbInitIterator(db, RPMDBI_PACKAGES, NULL, 0);
     while ((h = rpmdbNextIterator(mi)) != NULL) {
 
-       headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL);
+       (void) headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL);
        if (name && !strcmp(name, "metroess")) {
            /* metro was removed from 5.1, but leave it if it's already
               installed */
@@ -127,11 +130,12 @@ static void addLostFiles(rpmdb db, struct pkgSet *psp, struct hash_table *ht)
                       sizeof(*psp->packages), (void *)pkgCompare);
        if (!pack) {
            if (headerGetEntryMinMemory(h, RPMTAG_BASENAMES, NULL,
-                         (const void **) &installedFiles, &installedFileCount)) {
-               headerGetEntryMinMemory(h, RPMTAG_DIRINDEXES, NULL,
-                         (const void **) &installedDirIndexes, NULL);
-               headerGetEntryMinMemory(h, RPMTAG_DIRNAMES, NULL,
-                         (const void **) &installedDirs, NULL);
+                         (const void **) &installedFiles, &installedFileCount)
+           &&  headerGetEntryMinMemory(h, RPMTAG_DIRINDEXES, NULL,
+                         (const void **) &installedDirIndexes, NULL)
+           &&  headerGetEntryMinMemory(h, RPMTAG_DIRNAMES, NULL,
+                         (const void **) &installedDirs, NULL))
+           {
 
                compareFileList(0, NULL, NULL, NULL, installedFileCount,
                                installedFiles, installedDirs,
@@ -143,7 +147,7 @@ static void addLostFiles(rpmdb db, struct pkgSet *psp, struct hash_table *ht)
        }
     }
 
-    rpmdbFreeIterator(mi);
+    mi = rpmdbFreeIterator(mi);
 }
 
 static int findPackagesWithObsoletes(rpmdb db, struct pkgSet *psp)
@@ -155,7 +159,7 @@ static int findPackagesWithObsoletes(rpmdb db, struct pkgSet *psp)
     count = psp->numPackages;
     pip = psp->packages;
     while (count--) {
-       if ((*pip)->selected) {
+       if ((*pip)->selected != 0) {
            pip++;
            continue;
        }
@@ -189,9 +193,12 @@ static int findUpgradePackages(rpmdb db, struct pkgSet *psp,
     Header h, installedHeader;
     char *name;
     int count;
-    char **installedFiles, **availFiles;
-    char **installedDirs, ** availDirs;
-    int_32 * installedDirIndexes, * availDirIndexes;
+    char **installedFiles;
+    char ** availFiles = NULL;
+    char ** installedDirs;
+    char ** availDirs = NULL;
+    int_32 * installedDirIndexes;
+    int_32 * availDirIndexes = NULL;
     int installedFileCount, availFileCount;
     struct packageInfo **pip;
 
@@ -200,8 +207,9 @@ static int findUpgradePackages(rpmdb db, struct pkgSet *psp,
     while (count--) {
        h = (*pip)->h;
        name = NULL;
-       headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL);
-       if (!name) {
+       if (!headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL) ||
+           name == NULL)
+       {
            /* bum header */
            /*logMessage("Failed with bad header");*/
            return(-1);
@@ -212,9 +220,9 @@ static int findUpgradePackages(rpmdb db, struct pkgSet *psp,
     {  rpmdbMatchIterator mi;
 
        mi = rpmdbInitIterator(db, RPMTAG_NAME, name, 0);
-       skipThis = (mi ? 0 : 1);
-       rpmErrorSetCallback(errorFunction);
-       while((installedHeader = rpmdbNextIterator(mi)) != NULL) {
+       skipThis = (mi != NULL ? 0 : 1);
+       (void) rpmErrorSetCallback(errorFunction);
+       while ((installedHeader = rpmdbNextIterator(mi)) != NULL) {
            if (rpmVersionCompare(installedHeader, h) >= 0) {
                /* already have a newer version installed */
                DEBUG (("Already have newer version\n"))
@@ -222,8 +230,8 @@ static int findUpgradePackages(rpmdb db, struct pkgSet *psp,
                break;
            }
        }
-       rpmdbFreeIterator(mi);
-       rpmErrorSetCallback(NULL);
+       mi = rpmdbFreeIterator(mi);
+       (void) rpmErrorSetCallback(NULL);
        if (! skipThis) {
            DEBUG (("No newer version installed\n"))
        }
@@ -240,9 +248,9 @@ static int findUpgradePackages(rpmdb db, struct pkgSet *psp,
                availFiles = NULL;
                availFileCount = 0;
            } else {
-               headerGetEntryMinMemory(h, RPMTAG_DIRNAMES, NULL,
+               (void) headerGetEntryMinMemory(h, RPMTAG_DIRNAMES, NULL,
                            (const void **) &availDirs, NULL);
-               headerGetEntryMinMemory(h, RPMTAG_DIRINDEXES, NULL,
+               (void) headerGetEntryMinMemory(h, RPMTAG_DIRINDEXES, NULL,
                            (const void **) &availDirIndexes, NULL);
            }
 
@@ -250,12 +258,13 @@ static int findUpgradePackages(rpmdb db, struct pkgSet *psp,
            mi = rpmdbInitIterator(db, RPMTAG_NAME, name, 0);
            while((installedHeader = rpmdbNextIterator(mi)) != NULL) {
                if (headerGetEntryMinMemory(installedHeader, RPMTAG_BASENAMES, 
-                             NULL, (const void **) &installedFiles,
-                             &installedFileCount)) {
-                   headerGetEntryMinMemory(installedHeader, RPMTAG_DIRNAMES, 
-                               NULL, (const void **) &installedDirs, NULL);
-                   headerGetEntryMinMemory(installedHeader, RPMTAG_DIRINDEXES, 
-                               NULL, (const void **) &installedDirIndexes, NULL);
+                               NULL, (const void **) &installedFiles,
+                               &installedFileCount)
+               &&  headerGetEntryMinMemory(installedHeader, RPMTAG_DIRNAMES, 
+                               NULL, (const void **) &installedDirs, NULL)
+               &&  headerGetEntryMinMemory(installedHeader, RPMTAG_DIRINDEXES, 
+                               NULL, (const void **) &installedDirIndexes, NULL))
+               {
 
                    compareFileList(availFileCount, availFiles,
                                    availDirs, availDirIndexes,
@@ -267,7 +276,7 @@ static int findUpgradePackages(rpmdb db, struct pkgSet *psp,
                    free(installedDirs);
                }
            }
-           rpmdbFreeIterator(mi);
+           mi = rpmdbFreeIterator(mi);
        }
 
            if (availFiles) {
@@ -290,7 +299,7 @@ static int removeMovedFilesAlreadyHandled(struct pkgSet *psp,
     char *name;
     int i, count;
     Header h;
-    char **availFiles, ** availDirs;
+    char ** availFiles, ** availDirs;
     int_32 * availDirIndexes;
     int availFileCount;
     struct packageInfo **pip;
@@ -299,17 +308,18 @@ static int removeMovedFilesAlreadyHandled(struct pkgSet *psp,
     pip = psp->packages;
     while (count--) {
        h = (*pip)->h;
-       if ((*pip)->selected) {
+       if ((*pip)->selected != 0) {
            name = NULL;
-           headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL);
+           (void) headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL);
 
            if (headerGetEntryMinMemory(h, RPMTAG_BASENAMES, NULL,
-                         (const void **) &availFiles, &availFileCount)) {
+                         (const void **) &availFiles, &availFileCount)
 
-               headerGetEntryMinMemory(h, RPMTAG_DIRNAMES, NULL, 
-                              (const void **) &availDirs, NULL);
-               headerGetEntryMinMemory(h, RPMTAG_DIRINDEXES, NULL, 
-                              (const void **) &availDirIndexes, NULL);
+           &&  headerGetEntryMinMemory(h, RPMTAG_DIRNAMES, NULL, 
+                              (const void **) &availDirs, NULL)
+           &&  headerGetEntryMinMemory(h, RPMTAG_DIRINDEXES, NULL, 
+                              (const void **) &availDirIndexes, NULL))
+           {
 
                for (i = 0; i < availFileCount; i++) {
                    if (htInTable(ht, availDirs[availDirIndexes[i]],
@@ -351,16 +361,17 @@ static int findPackagesWithRelocatedFiles(struct pkgSet *psp,
        h = (*pip)->h;
        if (! (*pip)->selected) {
            name = NULL;
-           headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL);
+           (void) headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL);
 
            if (headerGetEntry(h, RPMTAG_BASENAMES, NULL,
-                        (void **) &availFiles, &availFileCount)) {
-               headerGetEntryMinMemory(h, RPMTAG_DIRNAMES, NULL,
-                           (const void **) &availDirs, NULL);
-               headerGetEntryMinMemory(h, RPMTAG_DIRINDEXES, NULL,
-                           (const void **) &availDirIndexes, NULL);
-               headerGetEntryMinMemory(h, RPMTAG_FILEMODES, NULL,
-                           (const void **) &availFileModes, NULL);
+                        (void **) &availFiles, &availFileCount)
+           &&  headerGetEntryMinMemory(h, RPMTAG_DIRNAMES, NULL,
+                           (const void **) &availDirs, NULL)
+           &&  headerGetEntryMinMemory(h, RPMTAG_DIRINDEXES, NULL,
+                           (const void **) &availDirIndexes, NULL)
+           &&  headerGetEntryMinMemory(h, RPMTAG_FILEMODES, NULL,
+                           (const void **) &availFileModes, NULL))
+           {
 
                for (i = 0; i < availFileCount; i++) {
                    if (S_ISDIR(availFileModes[i])) continue;
@@ -414,12 +425,13 @@ static int unmarkPackagesAlreadyInstalled(rpmdb db, struct pkgSet *psp)
     count = psp->numPackages;
     pip = psp->packages;
     while (count--) {
-       if ((*pip)->selected) {
+       if ((*pip)->selected != 0) {
            h = (*pip)->h;
            /* If this package is already installed, don't bother */
            name = NULL;
-           headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL);
-           if (!name) {
+           if (!headerGetEntry(h, RPMTAG_NAME, NULL, (void **) &name, NULL) ||
+               name == NULL)
+           {
                /* bum header */
                /*logMessage("Failed with bad header");*/
                return(-1);
@@ -427,7 +439,7 @@ static int unmarkPackagesAlreadyInstalled(rpmdb db, struct pkgSet *psp)
          { rpmdbMatchIterator mi;
 
            mi = rpmdbInitIterator(db, RPMTAG_NAME, name, 0);
-           rpmErrorSetCallback(errorFunction);
+           (void) rpmErrorSetCallback(errorFunction);
            while((installedHeader = rpmdbNextIterator(mi)) != NULL) {
                if (rpmVersionCompare(installedHeader, h) >= 0) {
                    /* already have a newer version installed */
@@ -436,8 +448,8 @@ static int unmarkPackagesAlreadyInstalled(rpmdb db, struct pkgSet *psp)
                    break;
                }
            }
-           rpmdbFreeIterator(mi);
-           rpmErrorSetCallback(NULL);
+           mi = rpmdbFreeIterator(mi);
+           (void) rpmErrorSetCallback(NULL);
          }
        }
 
@@ -469,10 +481,11 @@ int ugFindUpgradePackages(struct pkgSet *psp, char *installRoot)
        return(-1);
     }
 
-    rpmErrorSetCallback(old);
+    (void) rpmErrorSetCallback(old);
     rpmSetVerbosity(RPMMESS_NORMAL);
     
     hashTable = htNewTable(1103);
+    if (hashTable == NULL) return (-1);
 
     /* For all packages that are installed, if there is no package       */
     /* available by that name, add the package's files to the hash table */
@@ -484,7 +497,7 @@ int ugFindUpgradePackages(struct pkgSet *psp, char *installRoot)
     /* updating availPkgs with the count.  Also add files to the hash   */
     /* table that do not exist in the new package - they may have moved */
     if (findUpgradePackages(db, psp, hashTable)) {
-       rpmdbClose(db);
+       (void) rpmdbClose(db);
        return(-1);
     }
     /*logDebugMessage(("found basic packages to upgrade"));
@@ -493,19 +506,19 @@ int ugFindUpgradePackages(struct pkgSet *psp, char *installRoot)
 
     /* Remove any files that were added to the hash table that are in */
     /* some other package marked for upgrade.                         */
-    removeMovedFilesAlreadyHandled(psp, hashTable);
+    (void) removeMovedFilesAlreadyHandled(psp, hashTable);
     /*logDebugMessage(("removed extra files which have moved"));
     printCount(psp);*/
 
-    findPackagesWithRelocatedFiles(psp, hashTable);
+    (void) findPackagesWithRelocatedFiles(psp, hashTable);
     /*logDebugMessage(("found packages with relocated files"));
     printCount(psp);*/
 
-    findPackagesWithObsoletes(db, psp);
+    (void) findPackagesWithObsoletes(db, psp);
     /*logDebugMessage(("found packages that obsolete installed packages"));
     printCount(psp);*/
     
-    unmarkPackagesAlreadyInstalled(db, psp);
+    (void) unmarkPackagesAlreadyInstalled(db, psp);
     /*logDebugMessage(("unmarked packages already installed"));
     printCount(psp);*/
     
@@ -513,7 +526,7 @@ int ugFindUpgradePackages(struct pkgSet *psp, char *installRoot)
     
     /*printMemStats("Done");*/
 
-    rpmdbClose(db);
+    (void) rpmdbClose(db);
 
     return 0;
 }