summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/cpio.h16
-rw-r--r--lib/depends.h12
-rw-r--r--lib/falloc.h6
-rw-r--r--lib/header.h19
-rw-r--r--lib/install.h16
-rw-r--r--lib/query.c60
-rw-r--r--lib/rpmbzio.c12
-rw-r--r--lib/rpmio.h28
-rw-r--r--lib/rpmlead.h2
-rw-r--r--lib/rpmurl.h22
-rw-r--r--lib/signature.h4
-rw-r--r--lib/verify.c10
12 files changed, 108 insertions, 99 deletions
diff --git a/lib/cpio.h b/lib/cpio.h
index 8099634e0..7ab64df6b 100644
--- a/lib/cpio.h
+++ b/lib/cpio.h
@@ -45,8 +45,8 @@
#define CPIO_FOLLOW_SYMLINKS (1 << 4) /* only for building */
struct cpioFileMapping {
- char * archivePath;
- char * fsPath;
+ /*@dependent@*/ const char * archivePath;
+ /*@dependent@*/ const char * fsPath;
mode_t finalMode;
uid_t finalUid;
gid_t finalGid;
@@ -55,7 +55,7 @@ struct cpioFileMapping {
/* on cpio building, only "file" is filled in */
struct cpioCallbackInfo {
- char * file;
+ /*@dependent@*/ const char * file;
long fileSize; /* total file size */
long fileComplete; /* amount of file unpacked */
long bytesProcessed; /* bytes in archive read */
@@ -63,11 +63,11 @@ struct cpioCallbackInfo {
typedef struct CFD {
union {
- FD_t _cfdu_fd;
+ /*@owned@*/FD_t _cfdu_fd;
#define cpioFd _cfdu._cfdu_fd
- FILE * _cfdu_fp;
+ /*@owned@*/FILE *_cfdu_fp;
#define cpioFp _cfdu._cfdu_fp
- FD_t _cfdu_gzfd;
+ /*@owned@*/FD_t _cfdu_gzfd;
#define cpioGzFd _cfdu._cfdu_gzfd
} _cfdu;
int cpioPos;
@@ -94,7 +94,7 @@ typedef void (*cpioCallback)(struct cpioCallbackInfo * filespec, void * data);
user. If *failedFile is non-NULL on return, it should be free()d. */
int cpioInstallArchive(CFD_t *cfd, struct cpioFileMapping * mappings,
int numMappings, cpioCallback cb, void * cbData,
- char ** failedFile);
+ /*@out@*/const char ** failedFile);
int cpioBuildArchive(CFD_t *cfd, struct cpioFileMapping * mappings,
int numMappings, cpioCallback cb, void * cbData,
unsigned int * archiveSize, /*@out@*/char ** failedFile);
@@ -102,7 +102,7 @@ int cpioBuildArchive(CFD_t *cfd, struct cpioFileMapping * mappings,
/* This is designed to be qsort/bsearch compatible */
int cpioFileMapCmp(const void * a, const void * b);
-const char *cpioStrerror(int rc);
+/*@observer@*/ const char *cpioStrerror(int rc);
#ifdef __cplusplus
}
diff --git a/lib/depends.h b/lib/depends.h
index dd2ddb20c..334a48183 100644
--- a/lib/depends.h
+++ b/lib/depends.h
@@ -12,9 +12,9 @@ struct availablePackage {
const char * name, * version, * release;
int_32 *epoch;
int providesCount, filesCount;
- const void * key;
+ /*@owned@*/ const void * key;
rpmRelocation * relocs;
- FD_t fd;
+ /*@owned@*/ FD_t fd;
} ;
enum indexEntryType { IET_NAME, IET_PROVIDES, IET_FILE };
@@ -48,13 +48,13 @@ struct transactionElement {
};
struct rpmTransactionSet_s {
- rpmdb db; /* may be NULL */
- int * removedPackages;
+ /*@owned@*/rpmdb db; /* may be NULL */
+ /*@only@*/int * removedPackages;
int numRemovedPackages, allocedRemovedPackages;
struct availableList addedPackages, availablePackages;
- struct transactionElement * order;
+ /*@only@*/struct transactionElement * order;
int orderCount, orderAlloced;
- char * root;
+ /*@only@*/const char * root;
FD_t scriptFd;
};
diff --git a/lib/falloc.h b/lib/falloc.h
index 46155ca12..fc9aaad74 100644
--- a/lib/falloc.h
+++ b/lib/falloc.h
@@ -6,7 +6,7 @@
uses 32 bit offsets on all platforms and should be byte order independent */
typedef /*@abstract@*/ struct faFile_s {
- FD_t fd;
+ /*@owned@*/FD_t fd;
int readOnly;
unsigned int firstFree;
unsigned long fileSize;
@@ -22,10 +22,10 @@ extern "C" {
#endif
/* flags here is the same as for open(2) - NULL returned on error */
-faFile faOpen(char * path, int flags, int perms);
+/*@only@*/faFile faOpen(const char * path, int flags, int perms);
unsigned int faAlloc(faFile fa, unsigned int size); /* returns 0 on failure */
void faFree(faFile fa, unsigned int offset);
-void faClose(faFile fa);
+void faClose(/*@only@*/faFile fa);
FD_t faFileno(faFile fa);
off_t faLseek(faFile fa, off_t off, int op);
diff --git a/lib/header.h b/lib/header.h
index 1de6474c7..4d9db0fe6 100644
--- a/lib/header.h
+++ b/lib/header.h
@@ -34,11 +34,11 @@ typedef unsigned int uint_32;
typedef unsigned short uint_16;
#endif
-typedef /*@abstract@*/ struct headerToken *Header;
+typedef /*@abstract@*/ /*@refcounted@*/ struct headerToken *Header;
typedef /*@abstract@*/ struct headerIteratorS *HeaderIterator;
struct headerTagTableEntry {
- char * name;
+ const char * name;
int val;
};
@@ -73,7 +73,7 @@ extern const struct headerSprintfExtension headerDefaultFormats[];
Header headerRead(FD_t fd, int magicp);
int headerWrite(FD_t fd, Header h, int magicp);
Header headerGzRead(FD_t fd, int magicp);
-void headerGzWrite(FD_t fd, Header h, int magicp);
+int headerGzWrite(FD_t fd, Header h, int magicp);
unsigned int headerSizeof(Header h, int magicp);
#define HEADER_MAGIC_NO 0
@@ -84,7 +84,7 @@ Header headerLoad(void *p);
void *headerUnload(Header h);
Header headerNew(void);
-void headerFree(/*@only@*/ Header h);
+void headerFree(/*@killref@*/ Header h);
/* dump a header to a file, in human readable format */
void headerDump(Header h, FILE *f, int flags,
@@ -94,7 +94,7 @@ void headerDump(Header h, FILE *f, int flags,
char * headerSprintf(Header h, const char * fmt,
const struct headerTagTableEntry * tags,
const struct headerSprintfExtension * extentions,
- /*@out@*/char ** error);
+ /*@out@*/const char ** error);
#define HEADER_DUMP_INLINE 1
@@ -102,7 +102,7 @@ char * headerSprintf(Header h, const char * fmt,
exceptions noted below). While you are allowed to add i18n string
arrays through this function, you probably don't mean to. See
headerAddI18NString() instead */
-int headerAddEntry(Header h, int_32 tag, int_32 type, void *p, int_32 c);
+int headerAddEntry(Header h, int_32 tag, int_32 type, /*@out@*/void *p, int_32 c);
/* if there are multiple entries with this tag, the first one gets replaced */
int headerModifyEntry(Header h, int_32 tag, int_32 type, void *p, int_32 c);
@@ -137,11 +137,11 @@ int headerAddOrAppendEntry(Header h, int_32 tag, int_32 type,
int headerGetEntry(Header h, int_32 tag, /*@out@*/int_32 *type, /*@out@*/void **p, /*@out@*/int_32 *c);
/* This gets an entry, and uses as little extra RAM as possible to represent
it (this is only an issue for RPM_STRING_ARRAY_TYPE. */
-int headerGetEntryMinMemory(Header h, int_32 tag, int_32 *type, /*@out@*/void **p, int_32 *c);
+int headerGetEntryMinMemory(Header h, int_32 tag, int_32 *type, /*@out@*/void **p, /*@out@*/int_32 *c);
/* If *type is RPM_NULL_TYPE any type will match, otherwise only *type will
match. */
-int headerGetRawEntry(Header h, int_32 tag, int_32 *type, void **p, int_32 *c);
+int headerGetRawEntry(Header h, int_32 tag, /*@out@*/int_32 *type, /*@out@*/void **p, /*@out@*/int_32 *c);
int headerIsEntry(Header h, int_32 tag);
/* removes all entries of type tag from the header, returns 1 if none were
@@ -150,7 +150,8 @@ int headerRemoveEntry(Header h, int_32 tag);
HeaderIterator headerInitIterator(Header h);
int headerNextIterator(HeaderIterator iter,
- int_32 *tag, int_32 *type, void **p, int_32 *c);
+ /*@out@*/int_32 *tag, /*@out@*/int_32 *type, /*@out@*/void **p,
+ /*@out@*/int_32 *c);
void headerFreeIterator(/*@only@*/ HeaderIterator iter);
Header headerCopy(Header h);
diff --git a/lib/install.h b/lib/install.h
index 183280542..ab95511d6 100644
--- a/lib/install.h
+++ b/lib/install.h
@@ -24,22 +24,22 @@ enum fileTypes { XDIR, BDEV, CDEV, SOCK, PIPE, REG, LINK } ;
extern "C" {
#endif
-int removeBinaryPackage(char * root, rpmdb db, unsigned int offset, int flags,
- enum fileActions * actions, FD_t scriptFd);
+int removeBinaryPackage(const char * root, rpmdb db, unsigned int offset,
+ int flags, enum fileActions * actions, FD_t scriptFd);
int runInstScript(const char * prefix, Header h, int scriptTag, int progTag,
- int arg, int norunScripts, FD_t err);
+ int arg, int norunScripts, FD_t err);
/* this looks for triggers in the database which h would set off */
int runTriggers(const char * root, rpmdb db, int sense, Header h,
int countCorrection, FD_t scriptFd);
/* while this looks for triggers in h which are set off by things in the db
database to calculate arguments to the trigger */
int runImmedTriggers(const char * root, rpmdb db, int sense, Header h,
- int countCorrection, FD_t scriptFd);
+ int countCorrection, FD_t scriptFd);
int installBinaryPackage(const char * rootdir, rpmdb db, FD_t fd, Header h,
- int flags, rpmCallbackFunction notify,
- void * notifyData, const void * pkgKey,
- enum fileActions * actions,
- struct sharedFileInfo * sharedList, FD_t scriptFd);
+ int flags, rpmCallbackFunction notify,
+ void * notifyData, const void * pkgKey,
+ enum fileActions * actions,
+ struct sharedFileInfo * sharedList, FD_t scriptFd);
const char * fileActionString(enum fileActions a);
#ifdef __cplusplus
diff --git a/lib/query.c b/lib/query.c
index 7eae04256..4d61e2139 100644
--- a/lib/query.c
+++ b/lib/query.c
@@ -132,7 +132,7 @@ static void printFileInfo(FILE *fp, const char * name,
static int queryHeader(FILE *fp, Header h, const char * chptr)
{
char * str;
- char * error;
+ const char * error;
str = headerSprintf(h, chptr, rpmTagTable, rpmHeaderFormats, &error);
if (!str) {
@@ -145,7 +145,7 @@ static int queryHeader(FILE *fp, Header h, const char * chptr)
return 0;
}
-int showQueryPackage(QVA_t *qva, rpmdb db, Header h)
+int showQueryPackage(QVA_t *qva, /*@unused@*/rpmdb db, Header h)
{
FILE *fp = stdout; /* XXX FIXME: pass as arg */
int queryFlags = qva->qva_flags;
@@ -154,13 +154,15 @@ int showQueryPackage(QVA_t *qva, rpmdb db, Header h)
const char * name, * version, * release;
int_32 count, type;
char * prefix = NULL;
- char ** fileList, ** fileMD5List;
- char * fileStatesList;
- char ** fileOwnerList = NULL;
- char ** fileGroupList = NULL;
- char ** fileLinktoList;
+ const char ** fileList;
+ const char ** fileMD5List;
+ const char * fileStatesList;
+ const char ** fileOwnerList = NULL;
+ const char ** fileGroupList = NULL;
+ const char ** fileLinktoList;
int_32 * fileFlagsList, * fileMTimeList, * fileSizeList;
- int_32 * fileUIDList, * fileGIDList;
+ int_32 * fileUIDList = NULL;
+ int_32 * fileGIDList = NULL;
uint_16 * fileModeList;
uint_16 * fileRdevList;
int i;
@@ -201,17 +203,17 @@ int showQueryPackage(QVA_t *qva, rpmdb db, Header h)
if (!headerGetEntry(h, RPMTAG_FILEUIDS, &type,
(void **) &fileUIDList, &count)) {
fileUIDList = NULL;
- } else {
- headerGetEntry(h, RPMTAG_FILEGIDS, &type,
- (void **) &fileGIDList, &count);
+ } else if (!headerGetEntry(h, RPMTAG_FILEGIDS, &type,
+ (void **) &fileGIDList, &count)) {
+ fileGIDList = NULL;
}
if (!headerGetEntry(h, RPMTAG_FILEUSERNAME, &type,
(void **) &fileOwnerList, &count)) {
fileOwnerList = NULL;
- } else {
- headerGetEntry(h, RPMTAG_FILEGROUPNAME, &type,
- (void **) &fileGroupList, &count);
+ } else if (!headerGetEntry(h, RPMTAG_FILEGROUPNAME, &type,
+ (void **) &fileGroupList, &count)) {
+ fileGroupList = NULL;
}
for (i = 0; i < count; i++) {
@@ -238,7 +240,7 @@ int showQueryPackage(QVA_t *qva, rpmdb db, Header h)
fputs(_("net shared "), fp); break;
default:
fprintf(fp, _("(unknown %3d) "),
- fileStatesList[i]);
+ (int)fileStatesList[i]);
}
} else {
fputs( _("(no state) "), fp);
@@ -250,10 +252,10 @@ int showQueryPackage(QVA_t *qva, rpmdb db, Header h)
fileSizeList[i], fileMTimeList[i],
fileMD5List[i], fileModeList[i]);
- if (fileOwnerList)
+ if (fileOwnerList && fileGroupList)
fprintf(fp, "%s %s", fileOwnerList[i],
fileGroupList[i]);
- else if (fileUIDList)
+ else if (fileUIDList && fileGIDList)
fprintf(fp, "%d %d", fileUIDList[i],
fileGIDList[i]);
else {
@@ -274,13 +276,13 @@ int showQueryPackage(QVA_t *qva, rpmdb db, Header h)
} else if (!rpmIsVerbose()) {
fputs(fileList[i], fp);
fputs("\n", fp);
- } else if (fileOwnerList)
+ } else if (fileOwnerList && fileGroupList)
printFileInfo(fp, fileList[i], fileSizeList[i],
fileModeList[i], fileMTimeList[i],
fileRdevList[i], fileOwnerList[i],
fileGroupList[i], -1,
-1, fileLinktoList[i]);
- else if (fileUIDList) {
+ else if (fileUIDList && fileGIDList) {
printFileInfo(fp, fileList[i], fileSizeList[i],
fileModeList[i], fileMTimeList[i],
fileRdevList[i], NULL,
@@ -333,7 +335,8 @@ printNewSpecfile(Spec spec)
switch(t->t_tag) {
case RPMTAG_SUMMARY:
case RPMTAG_GROUP:
- FREE(sl->sl_lines[t->t_startx]);
+ free(sl->sl_lines[t->t_startx]);
+ sl->sl_lines[t->t_startx] = NULL;
if (t->t_lang && strcmp(t->t_lang, RPMBUILD_DEFAULT_LANG))
continue;
sprintf(buf, "%s: %s\n",
@@ -342,10 +345,13 @@ printNewSpecfile(Spec spec)
sl->sl_lines[t->t_startx] = strdup(buf);
break;
case RPMTAG_DESCRIPTION:
- for (j = 1; j < t->t_nlines; j++)
- FREE(sl->sl_lines[t->t_startx + j]);
+ for (j = 1; j < t->t_nlines; j++) {
+ free(sl->sl_lines[t->t_startx + j]);
+ sl->sl_lines[t->t_startx + j] = NULL;
+ }
if (t->t_lang && strcmp(t->t_lang, RPMBUILD_DEFAULT_LANG)) {
- FREE(sl->sl_lines[t->t_startx]);
+ free(sl->sl_lines[t->t_startx]);
+ sl->sl_lines[t->t_startx] = NULL;
continue;
}
sl->sl_lines[t->t_startx + 1] = strdup(msgstr);
@@ -457,7 +463,7 @@ int rpmQueryVerify(QVA_t *qva, enum rpmQVSources source, const char * arg,
break;
case 1:
fprintf(stderr, _("%s does not appear to be a RPM package\n"), arg);
- /* fallthrough */
+ /*@fallthrough@*/
case 2:
fprintf(stderr, _("query of %s failed\n"), arg);
retcode = 1;
@@ -650,8 +656,8 @@ int rpmQuery(QVA_t *qva, enum rpmQVSources source, const char * arg)
#define POPT_SPECFILE 1006
/* ========== Query/Verify source popt args */
-static void rpmQVSourceArgCallback(poptContext con, enum poptCallbackReason reason,
- const struct poptOption * opt, const char * arg,
+static void rpmQVSourceArgCallback(/*@unused@*/poptContext con, /*@unused@*/enum poptCallbackReason reason,
+ const struct poptOption * opt, /*@unused@*/const char * arg,
QVA_t *qva)
{
@@ -703,7 +709,7 @@ struct poptOption rpmQVSourcePoptTable[] = {
/* ========== Query specific popt args */
-static void queryArgCallback(poptContext con, enum poptCallbackReason reason,
+static void queryArgCallback(/*@unused@*/poptContext con, /*@unused@*/enum poptCallbackReason reason,
const struct poptOption * opt, const char * arg,
QVA_t *qva)
{
diff --git a/lib/rpmbzio.c b/lib/rpmbzio.c
index c66f38be9..bde4ccafe 100644
--- a/lib/rpmbzio.c
+++ b/lib/rpmbzio.c
@@ -3,6 +3,8 @@
#include <rpmlib.h>
#include <rpmio.h>
+/*@access FD_t@*/
+
/* =============================================================== */
/* Support for BZIP2 library.
*/
@@ -14,7 +16,7 @@ BZFILE * bzdFileno(FD_t fd) {
return (fd != NULL ? ((BZFILE *)fd->fd_bzd) : NULL);
}
-/*@null@*/ FD_t bzdOpen(const char *pathname, const char *mode) {
+FD_t bzdOpen(const char *pathname, const char *mode) {
FD_t fd;
BZFILE *bzfile;;
if ((bzfile = bzopen(pathname, mode)) == NULL)
@@ -24,7 +26,7 @@ BZFILE * bzdFileno(FD_t fd) {
return fd;
}
-/*@shared@*/ FD_t bzdFdopen(FD_t fd, const char *mode) {
+FD_t bzdFdopen(FD_t fd, const char *mode) {
BZFILE *bzfile = bzdopen(fdFileno(fd), mode);
if (bzfile != NULL) {
fd->fd_fd = -1;
@@ -46,12 +48,12 @@ int bzdFlush(FD_t fd) {
return bzflush(bzdFileno(fd));
}
-char * bzdStrerror(FD_t fd) {
+const char * bzdStrerror(FD_t fd) {
int bzerr;
- return (char *)bzerror(bzdFileno(fd), &bzerr);
+ return bzerror(bzdFileno(fd), &bzerr);
}
-int bzdClose(/*@only@*/ FD_t fd) {
+int bzdClose(FD_t fd) {
BZFILE *bzfile;
if (fd != NULL && (bzfile = bzdFileno(fd)) != NULL) {
diff --git a/lib/rpmio.h b/lib/rpmio.h
index 1f8cf8fee..57c2b6acc 100644
--- a/lib/rpmio.h
+++ b/lib/rpmio.h
@@ -22,21 +22,21 @@ typedef /*@abstract@*/ struct _FD {
extern "C" {
#endif
-int timedRead(FD_t fd, void * bufptr, int length);
+int timedRead(FD_t fd, /*@out@*/void * bufptr, int length);
-extern /*@null@*/ FD_t fdNew(void);
+extern /*@only@*/ /*@null@*/ FD_t fdNew(void);
extern int fdValid(FD_t fd);
extern int fdFileno(FD_t fd);
-extern /*@null@*/ FD_t fdOpen(const char *pathname, int flags, mode_t mode);
-extern /*@null@*/ FD_t fdDup(int fdno);
+extern /*@only@*/ /*@null@*/ FD_t fdOpen(const char *pathname, int flags, mode_t mode);
+extern /*@only@*/ /*@null@*/ FD_t fdDup(int fdno);
extern off_t fdLseek(FD_t fd, off_t offset, int whence);
-extern ssize_t fdRead(FD_t fd, void * buf, size_t count);
+extern ssize_t fdRead(FD_t fd, /*@out@*/void * buf, size_t count);
extern ssize_t fdWrite(FD_t fd, const void * buf, size_t count);
extern int fdClose(/*@only@*/ FD_t fd);
-extern /*@shared@*/ FILE *fdFdopen(/*@owned@*/ FD_t fd, const char *mode);
+extern /*@null@*/ FILE *fdFdopen(FD_t fd, const char *mode);
/*
* Support for GZIP library.
@@ -47,11 +47,11 @@ extern /*@shared@*/ FILE *fdFdopen(/*@owned@*/ FD_t fd, const char *mode);
extern gzFile * gzdFileno(FD_t fd);
-extern /*@null@*/ FD_t gzdOpen(const char *pathname, const char *mode);
+extern /*@only@*/ /*@null@*/ FD_t gzdOpen(const char *pathname, const char *mode);
-extern /*@shared@*/ FD_t gzdFdopen(FD_t fd, const char *mode);
+extern /*@only@*/ /*@null@*/ FD_t gzdFdopen(FD_t fd, const char *mode);
-extern ssize_t gzdRead(FD_t fd, void * buf, size_t count);
+extern ssize_t gzdRead(FD_t fd, /*@out@*/void * buf, size_t count);
extern ssize_t gzdWrite(FD_t fd, const void * buf, size_t count);
@@ -59,7 +59,7 @@ extern off_t gzdLseek(FD_t fd, off_t offset, int whence);
extern int gzdFlush(FD_t fd);
-extern char * gzdStrerror(FD_t fd);
+extern /*@only@*/ /*@observer@*/ const char * gzdStrerror(FD_t fd);
extern int gzdClose(/*@only@*/ FD_t fd);
@@ -74,17 +74,17 @@ extern int gzdClose(/*@only@*/ FD_t fd);
extern BZFILE * bzdFileno(FD_t fd);
-extern /*@null@*/ FD_t bzdOpen(const char *pathname, const char *mode);
+extern /*@only@*/ /*@null@*/ FD_t bzdOpen(const char *pathname, const char *mode);
-extern /*@shared@*/ FD_t bzdFdopen(FD_t fd, const char *mode);
+extern /*@only@*/ /*@null@*/ FD_t bzdFdopen(FD_t fd, const char *mode);
-extern ssize_t bzdRead(FD_t fd, void * buf, size_t count);
+extern ssize_t bzdRead(FD_t fd, /*@out@*/void * buf, size_t count);
extern ssize_t bzdWrite(FD_t fd, const void * buf, size_t count);
extern int bzdFlush(FD_t fd);
-extern char * bzdStrerror(FD_t fd);
+extern /*@only@*/ /*@observer@*/ const char * bzdStrerror(FD_t fd);
extern int bzdClose(/*@only@*/ FD_t fd);
diff --git a/lib/rpmlead.h b/lib/rpmlead.h
index 2de5941d3..a87fefe38 100644
--- a/lib/rpmlead.h
+++ b/lib/rpmlead.h
@@ -10,7 +10,7 @@ extern "C" {
#endif
int writeLead(FD_t fd, struct rpmlead *lead);
-int readLead(FD_t fd, struct rpmlead *lead);
+int readLead(FD_t fd, /*@out@*/struct rpmlead *lead);
#ifdef __cplusplus
}
diff --git a/lib/rpmurl.h b/lib/rpmurl.h
index 879b59409..39b50dee8 100644
--- a/lib/rpmurl.h
+++ b/lib/rpmurl.h
@@ -50,26 +50,26 @@ typedef struct urlinfo {
extern "C" {
#endif
-const char * ftpStrerror(int ftpErrno);
+/*@only@*/ /*@observer@*/ const char * ftpStrerror(int ftpErrno);
void urlSetCallback(rpmCallbackFunction notify, void *notifyData, int notifyCount);
int httpOpen(urlinfo *u);
int ftpOpen(urlinfo *u);
-int httpGetFile(FD_t sfd, FD_t tfd);
-int ftpGetFile(FD_t sfd, FD_t tfd);
+int httpGetFile(/*@only@*/FD_t sfd, FD_t tfd);
+int ftpGetFile(/*@only@*/FD_t sfd, FD_t tfd);
int ftpGetFileDesc(FD_t);
-int ftpAbort(FD_t fd);
-int ftpClose(FD_t fd);
+int ftpAbort(/*@only@*/FD_t fd);
+int ftpClose(/*@only@*/FD_t fd);
urltype urlIsURL(const char * url);
-int urlSplit(const char *url, urlinfo **u);
-urlinfo *newUrlinfo(void);
-void freeUrlinfo(urlinfo *u);
+int urlSplit(const char *url, /*@out@*/urlinfo **u);
+/*@only@*/urlinfo *newUrlinfo(void);
+void freeUrlinfo(/*@only@*/urlinfo *u);
-FD_t ufdOpen(const char * pathname, int flags, mode_t mode);
-int ufdClose(FD_t fd);
-const char *urlStrerror(const char *url);
+/*@only@*/ FD_t ufdOpen(const char * pathname, int flags, mode_t mode);
+int ufdClose(/*@only@*/FD_t fd);
+/*@observer@*/ const char *urlStrerror(const char *url);
int urlGetFile(const char * url, const char * dest);
void urlInvalidateCache(const char * url);
diff --git a/lib/signature.h b/lib/signature.h
index d4e2e64f2..099ffc0a9 100644
--- a/lib/signature.h
+++ b/lib/signature.h
@@ -38,7 +38,7 @@ extern "C" {
Header rpmNewSignature(void);
/* If an old-style signature is found, we emulate a new style one */
-int rpmReadSignature(FD_t fd, Header *header, short sig_type);
+int rpmReadSignature(FD_t fd, /*@out@*/Header *header, short sig_type);
int rpmWriteSignature(FD_t fd, Header header);
/* Generate a signature of data in file, insert in header */
@@ -64,7 +64,7 @@ typedef enum pgpVersion_e {
} pgpVersion;
/* Return path to pgp executable of given type, or NULL when not found */
-const char *rpmDetectPGPVersion(pgpVersion *pgpVersion);
+const char *rpmDetectPGPVersion(/*@out@*/pgpVersion *pgpVersion);
#ifdef __cplusplus
}
diff --git a/lib/verify.c b/lib/verify.c
index dc989287c..7008b6b47 100644
--- a/lib/verify.c
+++ b/lib/verify.c
@@ -19,9 +19,9 @@ static union _endian { int i; char b[4]; } *_endian = (union _endian *)&_ie;
#define POPT_NOFILES 1000
/* ========== Verify specific popt args */
-static void verifyArgCallback(poptContext con, enum poptCallbackReason reason,
- const struct poptOption * opt, const char * arg,
- QVA_t *qva)
+static void verifyArgCallback(/*@unused@*/poptContext con,
+ /*@unused@*/enum poptCallbackReason reason,
+ const struct poptOption * opt, /*@unused@*/const char * arg, QVA_t *qva)
{
switch (opt->val) {
case POPT_NOFILES: qva->qva_flags |= VERIFY_FILES; break;
@@ -301,7 +301,7 @@ static int verifyHeader(QVA_t *qva, Header h)
return ec;
}
-static int verifyDependencies(rpmdb db, Header h) {
+static int verifyDependencies(/*@only@*/rpmdb db, Header h) {
rpmTransactionSet rpmdep;
struct rpmDependencyConflict * conflicts;
int numConflicts;
@@ -361,7 +361,7 @@ int rpmVerify(QVA_t *qva, enum rpmQVSources source, const char *arg)
case RPMQV_RPM:
if (!(qva->qva_flags & VERIFY_DEPS))
break;
- /* fall thru */
+ /*@fallthrough@*/
default:
if (rpmdbOpen(qva->qva_prefix, &db, O_RDONLY, 0644)) {
fprintf(stderr, _("rpmVerify: rpmdbOpen() failed\n"));