diff options
author | jbj <devnull@localhost> | 2004-10-09 17:29:22 +0000 |
---|---|---|
committer | jbj <devnull@localhost> | 2004-10-09 17:29:22 +0000 |
commit | b831315e41173e27a4e402c65d318b43558c4fca (patch) | |
tree | 4d8b5816ed2c4a51657bb698320cfd62761c29d0 | |
parent | d8822ba626caea60e6310157c1a180cde16bfe0a (diff) | |
download | rpm-b831315e41173e27a4e402c65d318b43558c4fca.tar.gz rpm-b831315e41173e27a4e402c65d318b43558c4fca.tar.bz2 rpm-b831315e41173e27a4e402c65d318b43558c4fca.zip |
Splint fiddles.
CVS patchset: 7435
CVS date: 2004/10/09 17:29:22
-rw-r--r-- | rpmio/.cvsignore | 1 | ||||
-rw-r--r-- | rpmio/.splintrc | 1 | ||||
-rw-r--r-- | rpmio/Makefile.am | 21 | ||||
-rw-r--r-- | rpmio/macro.c | 7 | ||||
-rw-r--r-- | rpmio/rpmhook.c | 7 | ||||
-rw-r--r-- | rpmio/rpmhook.h | 3 | ||||
-rw-r--r-- | rpmio/rpmio.c | 6 | ||||
-rw-r--r-- | rpmio/rpmlua.c | 13 | ||||
-rw-r--r-- | rpmio/rpmpgp.c | 24 | ||||
-rw-r--r-- | rpmio/sexp/.splintrc | 2 | ||||
-rw-r--r-- | rpmio/sexp/sexp-basic.c | 15 | ||||
-rw-r--r-- | rpmio/sexp/sexp-input.c | 4 | ||||
-rw-r--r-- | rpmio/sexp/sexp-output.c | 78 | ||||
-rw-r--r-- | rpmio/sexp/sexp.h | 2 | ||||
-rw-r--r-- | rpmio/tax.c | 108 | ||||
-rw-r--r-- | rpmio/ugid.c | 4 | ||||
-rw-r--r-- | system.h | 16 |
17 files changed, 225 insertions, 87 deletions
diff --git a/rpmio/.cvsignore b/rpmio/.cvsignore index 1c294cb5e..ea302cec3 100644 --- a/rpmio/.cvsignore +++ b/rpmio/.cvsignore @@ -7,6 +7,7 @@ Makefile.in *.la *.lcd *.lo +tax tdigest tdir tficl diff --git a/rpmio/.splintrc b/rpmio/.splintrc index 1f26e45d7..2c1027e6e 100644 --- a/rpmio/.splintrc +++ b/rpmio/.splintrc @@ -15,7 +15,6 @@ +bounds -bufferoverflowhigh - # --- +partial artifacts -declundef -exportheadervar diff --git a/rpmio/Makefile.am b/rpmio/Makefile.am index 2cfb04f67..4a340e16a 100644 --- a/rpmio/Makefile.am +++ b/rpmio/Makefile.am @@ -4,24 +4,23 @@ AUTOMAKE_OPTIONS = 1.4 foreign LINT = splint -EXTRA_DIST = tdigest.c tdir.c tficl.c tfts.c tglob.c tinv.c tkey.c trpmio.c +EXTRA_DIST = tax.c tdigest.c tdir.c tficl.c tfts.c tglob.c tinv.c tkey.c trpmio.c -EXTRA_PROGRAMS = tdigest tdir tfts tglob tinv tkey tring trpmio tsw dumpasn1 +EXTRA_PROGRAMS = tax tdigest tdir tfts tglob tinv tkey tring trpmio tsw dumpasn1 INCLUDES = -I. \ -I$(top_srcdir) \ @WITH_BEECRYPT_INCLUDE@ \ + @WITH_LUA_INCLUDE@ \ -I$(top_srcdir)/popt \ - -I$(top_srcdir)/lua/include \ - -I$(top_srcdir)/lua/local \ @INCPATH@ pkgincdir = $(pkgincludedir) pkginc_HEADERS = \ argv.h fts.h \ rpmio.h rpmurl.h rpmmacro.h rpmlog.h rpmmessages.h rpmerr.h rpmpgp.h \ - rpmsq.h rpmsw.h ugid.h rpmlua.h rpmhook.h -noinst_HEADERS = rpmio_internal.h + rpmsq.h rpmsw.h ugid.h +noinst_HEADERS = rpmio_internal.h rpmlua.h rpmhook.h BEECRYPTLOBJS = $(shell test X"@WITH_BEECRYPT_SUBDIR@" != X && cat $(top_builddir)/@WITH_BEECTYPT_SUBDIR@/listobjs) @@ -31,13 +30,12 @@ usrlibdir = $(libdir)@MARK64@ usrlib_LTLIBRARIES = librpmio.la librpmio_la_SOURCES = \ argv.c digest.c fts.c macro.c \ - rpmio.c rpmlog.c rpmmalloc.c \ - rpmpgp.c rpmrpc.c rpmsq.c rpmsw.c strcasecmp.c stubs.c url.c ugid.c \ - rpmlua.c rpmhook.c + rpmhook.c rpmio.c rpmlog.c rpmlua.c rpmmalloc.c \ + rpmpgp.c rpmrpc.c rpmsq.c rpmsw.c strcasecmp.c stubs.c url.c ugid.c librpmio_la_LDFLAGS = -release 4.3 $(LDFLAGS) \ @WITH_BEECRYPT_LIB@ \ + @WITH_LUA_LIB@ \ $(top_builddir)/file/src/libfmagic.la \ - $(top_builddir)/lua/liblua.la \ @WITH_ZLIB_LIB@ \ -lrt -lpthread librpmio_la_LIBADD = # $(BEECRYPTLOBJS) @@ -68,6 +66,9 @@ sources: lint: $(LINT) $(DEFS) $(INCLUDES) $(librpmio_la_SOURCES) +tax_SOURCES = tax.c +tax_LDADD = librpmio.la + tdigest_SOURCES = tdigest.c tdigest_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la -lgcrypt diff --git a/rpmio/macro.c b/rpmio/macro.c index 94970b081..1c72a39d0 100644 --- a/rpmio/macro.c +++ b/rpmio/macro.c @@ -43,7 +43,10 @@ typedef FILE * FD_t; #include <rpmio_internal.h> #include <rpmmessages.h> #include <rpmerr.h> + +#ifdef WITH_LUA #include <rpmlua.h> +#endif #endif @@ -1404,6 +1407,7 @@ expandMacro(MacroBuf mb) continue; } +#ifdef WITH_LUA if (STREQ("lua", f, fn)) { rpmlua lua = NULL; /* Global state. */ const char *ls = s+sizeof("{lua:")-1; @@ -1429,6 +1433,7 @@ expandMacro(MacroBuf mb) s = se; continue; } +#endif /* XXX necessary but clunky */ if (STREQ("basename", f, fn) || @@ -1793,7 +1798,7 @@ exit: } /*@=branchstate@*/ #endif - av = _free(av); + av = _free(av); /*@-branchstate@*/ if (rc || argvPtr == NULL) { /*@-dependenttrans -unqualifiedtrans@*/ diff --git a/rpmio/rpmhook.c b/rpmio/rpmhook.c index ae78a8e47..87e251e31 100644 --- a/rpmio/rpmhook.c +++ b/rpmio/rpmhook.c @@ -41,7 +41,8 @@ rpmhookArgs rpmhookArgsNew(int argc) rpmhookArgs rpmhookArgsFree(rpmhookArgs args) { - free(args); + if (args != NULL) + free(args); return NULL; } @@ -156,8 +157,8 @@ static void rpmhookTableAddItem(rpmhookTable *table, const char *name, } static void rpmhookTableDelItem(rpmhookTable *table, const char *name, - rpmhookFunc func, void *data, - int matchfunc, int matchdata) + /*@null@*/ rpmhookFunc func, /*@null@*/ void *data, + int matchfunc, int matchdata) /*@modifies *table @*/ { int n = rpmhookTableFindBucket(table, name); diff --git a/rpmio/rpmhook.h b/rpmio/rpmhook.h index d7dc26e57..925067603 100644 --- a/rpmio/rpmhook.h +++ b/rpmio/rpmhook.h @@ -21,7 +21,8 @@ typedef int (*rpmhookFunc) (rpmhookArgs args, void *data); /*@only@*/ rpmhookArgs rpmhookArgsNew(int argc) /*@*/; -rpmhookArgs rpmhookArgsFree(/*@only@*/ rpmhookArgs args) +/*@null@*/ +rpmhookArgs rpmhookArgsFree(/*@only@*/ /*@null@*/ rpmhookArgs args) /*@modifies args @*/; void rpmhookRegister(const char *name, rpmhookFunc func, void *data) diff --git a/rpmio/rpmio.c b/rpmio/rpmio.c index 51064555b..27b5a7d2b 100644 --- a/rpmio/rpmio.c +++ b/rpmio/rpmio.c @@ -508,9 +508,9 @@ int fdWritable(FD_t fd, int secs) tvp->tv_usec = 0; } FD_SET(fdno, &wrfds); - /*@-compdef -nullpass@*/ +/*@-compdef -nullpass@*/ rc = select(fdno + 1, NULL, &wrfds, NULL, tvp); - /*@=compdef =nullpass@*/ +/*@=compdef =nullpass@*/ #endif if (_rpmio_debug && !(rc == 1 && errno == 0)) @@ -2213,7 +2213,7 @@ static int gzdFlush(FD_t fd) /* =============================================================== */ static ssize_t gzdRead(void * cookie, /*@out@*/ char * buf, size_t count) /*@globals fileSystem, internalState @*/ - /*@modifies *buf, fileSystem, internalState @*/ + /*@modifies buf, fileSystem, internalState @*/ { FD_t fd = c2f(cookie); gzFile gzfile; diff --git a/rpmio/rpmlua.c b/rpmio/rpmlua.c index a36d317d8..363216ef0 100644 --- a/rpmio/rpmlua.c +++ b/rpmio/rpmlua.c @@ -1,16 +1,18 @@ /*@-bounds -realcompare -sizeoftype -protoparammatch @*/ #include "system.h" + +#ifdef WITH_LUA #include <rpmio.h> #include <rpmmacro.h> #include <rpmerr.h> #include <rpmurl.h> #include <rpmhook.h> -#include "../lua/include/lua.h" -#include "../lua/include/lualib.h" -#include "../lua/include/lauxlib.h" -#include "../lua/local/lposix.h" -#include "../lua/local/lrexlib.h" +#include <lua.h> +#include <lualib.h> +#include <lauxlib.h> +#include <lposix.h> +#include <lrexlib.h> #include <unistd.h> #include <assert.h> @@ -838,5 +840,6 @@ static int luaopen_rpm(lua_State *L) luaL_openlib(L, "rpm", rpmlib, 0); return 0; } +#endif /* WITH_LUA */ /*@=bounds =realcompare =sizeoftype =protoparammatch @*/ diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c index 7beb14b49..d97c01cb0 100644 --- a/rpmio/rpmpgp.c +++ b/rpmio/rpmpgp.c @@ -326,7 +326,7 @@ const char * pgpMpiHex(const byte *p) static int pgpHexSet(const char * pre, int lbits, /*@out@*/ mpnumber * mpn, const byte * p, const byte * pend) /*@globals fileSystem @*/ - /*@modifies *mpn, fileSystem @*/ + /*@modifies mpn, fileSystem @*/ { unsigned int mbits = pgpMpiBits(p); unsigned int nbits; @@ -348,7 +348,7 @@ fprintf(stderr, "*** mbits %u nbits %u nbytes %u t %p[%d] ix %u\n", mbits, nbits strcpy(t+ix, pgpMpiHex(p)); if (_debug) fprintf(stderr, "*** %s %s\n", pre, t); - mpnsethex(mpn, t); + (void) mpnsethex(mpn, t); t = _free(t); if (_debug && _print) fprintf(stderr, "\t %s ", pre), mpfprintln(stderr, mpn->size, mpn->data); @@ -481,7 +481,7 @@ static int pgpPrtSigParams(/*@unused@*/ pgpTag tag, byte pubkey_algo, byte sigty { switch (i) { case 0: /* m**d */ - mpnsethex(&_dig->c, pgpMpiHex(p)); + (void) mpnsethex(&_dig->c, pgpMpiHex(p)); if (_debug && _print) fprintf(stderr, "\t m**d = "), mpfprintln(stderr, _dig->c.size, _dig->c.data); /*@switchbreak@*/ break; @@ -689,7 +689,7 @@ static const byte * pgpPrtPubkeyParams(byte pubkey_algo, if (_dig) { switch (i) { case 0: /* n */ - mpbsethex(&_dig->rsa_pk.n, pgpMpiHex(p)); + (void) mpbsethex(&_dig->rsa_pk.n, pgpMpiHex(p)); /* Get the keyid */ if (_digp) { uint32_t* np = _dig->rsa_pk.n.modl; @@ -708,7 +708,7 @@ if (_debug && _print) fprintf(stderr, "\t n = "), mpfprintln(stderr, _dig->rsa_pk.n.size, _dig->rsa_pk.n.modl); /*@switchbreak@*/ break; case 1: /* e */ - mpnsethex(&_dig->rsa_pk.e, pgpMpiHex(p)); + (void) mpnsethex(&_dig->rsa_pk.e, pgpMpiHex(p)); if (_debug && _print) fprintf(stderr, "\t e = "), mpfprintln(stderr, _dig->rsa_pk.e.size, _dig->rsa_pk.e.data); /*@switchbreak@*/ break; @@ -722,22 +722,22 @@ fprintf(stderr, "\t e = "), mpfprintln(stderr, _dig->rsa_pk.e.size, _dig->r if (_dig) { switch (i) { case 0: /* p */ - mpbsethex(&_dig->p, pgpMpiHex(p)); + (void) mpbsethex(&_dig->p, pgpMpiHex(p)); if (_debug && _print) fprintf(stderr, "\t p = "), mpfprintln(stderr, _dig->p.size, _dig->p.modl); /*@switchbreak@*/ break; case 1: /* q */ - mpbsethex(&_dig->q, pgpMpiHex(p)); + (void) mpbsethex(&_dig->q, pgpMpiHex(p)); if (_debug && _print) fprintf(stderr, "\t q = "), mpfprintln(stderr, _dig->q.size, _dig->q.modl); /*@switchbreak@*/ break; case 2: /* g */ - mpnsethex(&_dig->g, pgpMpiHex(p)); + (void) mpnsethex(&_dig->g, pgpMpiHex(p)); if (_debug && _print) fprintf(stderr, "\t g = "), mpfprintln(stderr, _dig->g.size, _dig->g.data); /*@switchbreak@*/ break; case 3: /* y */ - mpnsethex(&_dig->y, pgpMpiHex(p)); + (void) mpnsethex(&_dig->y, pgpMpiHex(p)); if (_debug && _print) fprintf(stderr, "\t y = "), mpfprintln(stderr, _dig->y.size, _dig->y.data); /*@switchbreak@*/ break; @@ -1229,10 +1229,14 @@ pgpArmor pgpReadPkts(const char * fn, const byte ** pkt, size_t * pktlen) if (!TOKEQ(t, "-----\n")) goto exit; + crcdec = NULL; + crclen = 0; if (b64decode(crcenc, (void **)&crcdec, &crclen) != 0) continue; crcpkt = pgpGrab(crcdec, crclen); crcdec = _free(crcdec); + dec = NULL; + declen = 0; if (b64decode(enc, (void **)&dec, &declen) != 0) goto exit; crc = pgpCRC(dec, declen); @@ -1305,7 +1309,9 @@ char * pgpArmorWrap(int atype, const unsigned char * s, size_t ns) t = stpcpy(t, "-----\n"); /*@=boundswrite@*/ +/*@-globstate@*/ /* XXX b64encode_eolstr */ return val; +/*@=globstate@*/ } /*@=boundsread@*/ diff --git a/rpmio/sexp/.splintrc b/rpmio/sexp/.splintrc index bf303eb36..59f3e7d18 100644 --- a/rpmio/sexp/.splintrc +++ b/rpmio/sexp/.splintrc @@ -52,4 +52,4 @@ +boolint # +charint # +ignorequals # -+matchanyintegral # +#+matchanyintegral # diff --git a/rpmio/sexp/sexp-basic.c b/rpmio/sexp/sexp-basic.c index 8f7422ad0..8342d9565 100644 --- a/rpmio/sexp/sexp-basic.c +++ b/rpmio/sexp/sexp-basic.c @@ -11,12 +11,12 @@ #include <string.h> #include "sexp.h" -/*@access sexpIter @*/ /*@access sexpSimpleString @*/ - -/*@access sexpList @*/ /*@access sexpString @*/ -/*@access sexpObject @*/ +/*@access sexpList @*/ + +/*@access sexpObject @*/ /* XXX for casts only */ +/*@access sexpIter @*/ /* XXX for casts only */ /******************/ /* ERROR MESSAGES */ @@ -76,7 +76,8 @@ void * sexpAlloc(size_t n) */ sexpSimpleString newSimpleString(void) { - sexpSimpleString ss = (sexpSimpleString) sexpAlloc(sizeof(*ss)); + sexpSimpleString ss = sexpAlloc(sizeof(*ss)); + ss->length = 0; ss->allocatedLength = 16; ss->string = sexpAlloc(16); @@ -86,7 +87,7 @@ sexpSimpleString newSimpleString(void) /* simpleStringLength(ss) * returns length of simple string */ -long int simpleStringLength(sexpSimpleString ss) +size_t simpleStringLength(sexpSimpleString ss) { return ss->length; } @@ -110,7 +111,7 @@ sexpSimpleString reallocateSimpleString(sexpSimpleString ss) if (ss == NULL) return NULL; } if (ss->string == NULL) - ss->string = (octet *)sexpAlloc(16); + ss->string = sexpAlloc(16); else { size_t newsize = 16 + 3*(ss->length)/2; octet * newstring = sexpAlloc(newsize); diff --git a/rpmio/sexp/sexp-input.c b/rpmio/sexp/sexp-input.c index 8b9c13d54..14ee37e05 100644 --- a/rpmio/sexp/sexp-input.c +++ b/rpmio/sexp/sexp-input.c @@ -367,9 +367,9 @@ void scanQuotedString(sexpInputStream is, sexpSimpleString ss, long int length) { int c; skipChar(is,'"'); - while (length == -1 || simpleStringLength(ss) <= length) { + while (length == -1L || simpleStringLength(ss) <= length) { if (is->nextChar == '\"') { - if (length == -1 || (simpleStringLength(ss) == length)) { + if (length == -1L || simpleStringLength(ss) == length) { skipChar(is,'\"'); return; } diff --git a/rpmio/sexp/sexp-output.c b/rpmio/sexp/sexp-output.c index 65e1496e6..cf2b23522 100644 --- a/rpmio/sexp/sexp-output.c +++ b/rpmio/sexp/sexp-output.c @@ -208,13 +208,13 @@ void printDecimal(sexpOutputStream os, long int n) void canonicalPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString ss) { octet * c = simpleStringString(ss); - long int len = simpleStringLength(ss); - long int i; + size_t len = simpleStringLength(ss); + size_t i; if (c == NULL) ErrorMessage(ERROR, "Can't print NULL string verbatim"); /* print out len: */ - printDecimal(os, len); + printDecimal(os, (long int)len); varPutChar(os, ':'); /* print characters in fragment */ for (i=0; i<len; i++) varPutChar(os, (int)*c++); @@ -298,12 +298,14 @@ void base64PrintWholeObject(sexpOutputStream os, sexpObject object) */ int canPrintAsToken(sexpOutputStream os, sexpSimpleString ss) { - long int len = simpleStringLength(ss); octet * c = simpleStringString(ss); - int i; + size_t len = simpleStringLength(ss); + size_t i; if (c == NULL) return FALSE; +/*@-unsignedcompare@*/ /* XXX len now unsigned size_t. */ if (len <= 0) return FALSE; +/*@=unsignedcompare@*/ if (isDecDigit((int)*c)) return FALSE; if (os->maxcolumn > 0 && os->column + len >= os->maxcolumn) return FALSE; @@ -318,9 +320,9 @@ int canPrintAsToken(sexpOutputStream os, sexpSimpleString ss) */ void advancedPrintTokenSimpleString(sexpOutputStream os, sexpSimpleString ss) { - long int len = simpleStringLength(ss); octet * c = simpleStringString(ss); - int i; + size_t len = simpleStringLength(ss); + size_t i; if (os->maxcolumn>0 && os->column > (os->maxcolumn - len)) os->newLine(os, ADVANCED); @@ -331,7 +333,7 @@ void advancedPrintTokenSimpleString(sexpOutputStream os, sexpSimpleString ss) /* advancedLengthSimpleStringToken(ss) * Returns length for printing simple string ss as a token */ -int advancedLengthSimpleStringToken(sexpSimpleString ss) +size_t advancedLengthSimpleStringToken(sexpSimpleString ss) { return simpleStringLength(ss); } @@ -345,26 +347,26 @@ int advancedLengthSimpleStringToken(sexpSimpleString ss) */ void advancedPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString ss) { - long int len = simpleStringLength(ss); octet * c = simpleStringString(ss); - long int i; + size_t len = simpleStringLength(ss); + size_t i; if (c == NULL) ErrorMessage(ERROR, "Can't print NULL string verbatim"); if (os->maxcolumn>0 && os->column > (os->maxcolumn - len)) os->newLine(os, ADVANCED); - printDecimal(os,len); - os->putChar(os,':'); + printDecimal(os, (long int)len); + os->putChar(os, ':'); for (i=0; i<len; i++) os->putChar(os, (int)*c++); } /* advancedLengthSimpleStringVerbatim(ss) * Returns length for printing simple string ss in verbatim mode */ -int advancedLengthSimpleStringVerbatim(sexpSimpleString ss) +size_t advancedLengthSimpleStringVerbatim(sexpSimpleString ss) { - long int len = simpleStringLength(ss); - int i = 1; + size_t len = simpleStringLength(ss); + size_t i = 1; while (len > 9L) { i++; len = len / 10; } return (i+1+len); } @@ -376,9 +378,9 @@ int advancedLengthSimpleStringVerbatim(sexpSimpleString ss) */ void advancedPrintBase64SimpleString(sexpOutputStream os, sexpSimpleString ss) { - long int len = simpleStringLength(ss); - octet *c = simpleStringString(ss); - long int i; + octet * c = simpleStringString(ss); + size_t len = simpleStringLength(ss); + size_t i; if (c == NULL) ErrorMessage(ERROR, "Can't print NULL string base 64"); @@ -398,9 +400,9 @@ void advancedPrintBase64SimpleString(sexpOutputStream os, sexpSimpleString ss) */ void advancedPrintHexSimpleString(sexpOutputStream os, sexpSimpleString ss) { - long int len = simpleStringLength(ss); - octet *c = simpleStringString(ss); - long int i; + octet * c = simpleStringString(ss); + size_t len = simpleStringLength(ss); + size_t i; if (c == NULL) ErrorMessage(ERROR, "Can't print NULL string hexadecimal"); @@ -418,7 +420,7 @@ void advancedPrintHexSimpleString(sexpOutputStream os, sexpSimpleString ss) */ int advancedLengthSimpleStringHexadecimal(sexpSimpleString ss) { - long int len = simpleStringLength(ss); + size_t len = simpleStringLength(ss); return (1+2*len+1); } @@ -431,12 +433,14 @@ int advancedLengthSimpleStringHexadecimal(sexpSimpleString ss) */ int canPrintAsQuotedString(sexpSimpleString ss) { - long int len = simpleStringLength(ss); - octet *c = simpleStringString(ss); - long int i; + octet * c = simpleStringString(ss); + size_t len = simpleStringLength(ss); + size_t i; if (c == NULL) return FALSE ; +/*@-unsignedcompare@*/ /* XXX len now unsigned size_t. */ if (len < 0) return FALSE; +/*@=unsignedcompare@*/ for (i=0; i<len; i++,c++) { if (!isTokenChar((int)(*c)) && *c != ' ') return FALSE; @@ -452,9 +456,9 @@ int canPrintAsQuotedString(sexpSimpleString ss) */ void advancedPrintQuotedStringSimpleString(sexpOutputStream os, sexpSimpleString ss) { - long int len = simpleStringLength(ss); - octet *c = simpleStringString(ss); - long int i; + octet * c = simpleStringString(ss); + size_t len = simpleStringLength(ss); + size_t i; os->putChar(os, '\"'); for (i=0; i<len; i++) { @@ -473,7 +477,8 @@ void advancedPrintQuotedStringSimpleString(sexpOutputStream os, sexpSimpleString */ int advancedLengthSimpleStringQuotedString(sexpSimpleString ss) { - long int len = simpleStringLength(ss); + size_t len = simpleStringLength(ss); + return (1+len+1); } @@ -484,7 +489,7 @@ int advancedLengthSimpleStringQuotedString(sexpSimpleString ss) */ void advancedPrintSimpleString(sexpOutputStream os, sexpSimpleString ss) { - long int len = simpleStringLength(ss); + size_t len = simpleStringLength(ss); if (canPrintAsToken(os, ss)) advancedPrintTokenSimpleString(os, ss); @@ -528,9 +533,10 @@ int advancedLengthSimpleStringBase64(sexpSimpleString ss) /* advancedLengthSimpleString(os,ss) * Returns length of printed image of s */ -int advancedLengthSimpleString(sexpOutputStream os, sexpSimpleString ss) +size_t advancedLengthSimpleString(sexpOutputStream os, sexpSimpleString ss) { - long int len = simpleStringLength(ss); + size_t len = simpleStringLength(ss); + if (canPrintAsToken(os,ss)) return advancedLengthSimpleStringToken(ss); else if (canPrintAsQuotedString(ss)) @@ -546,11 +552,11 @@ int advancedLengthSimpleString(sexpOutputStream os, sexpSimpleString ss) /* advancedLengthString(os,s) * Returns length of printed image of string s */ -int advancedLengthString(sexpOutputStream os, sexpString s) +size_t advancedLengthString(sexpOutputStream os, sexpString s) { sexpSimpleString ph = sexpStringPresentationHint(s); sexpSimpleString ss = sexpStringString(s); - int len = 0; + size_t len = 0; if (ph != NULL) len += 2+advancedLengthSimpleString(os, ph); @@ -562,11 +568,11 @@ int advancedLengthString(sexpOutputStream os, sexpString s) /* advancedLengthList(os,list) * Returns length of printed image of list given as iterator */ -int advancedLengthList(sexpOutputStream os, sexpList list) +size_t advancedLengthList(sexpOutputStream os, sexpList list) { sexpIter iter = sexpListIter(list); sexpObject object; - int len = 1; /* for left paren */ + size_t len = 1; /* for left paren */ while (iter != NULL) { object = sexpIterObject(iter); diff --git a/rpmio/sexp/sexp.h b/rpmio/sexp/sexp.h index 09de1aa1a..195f23559 100644 --- a/rpmio/sexp/sexp.h +++ b/rpmio/sexp/sexp.h @@ -90,7 +90,7 @@ void * sexpAlloc(size_t n) sexpSimpleString newSimpleString(void) /*@globals fileSystem @*/ /*@modifies fileSystem @*/; -long int simpleStringLength(sexpSimpleString ss) +size_t simpleStringLength(sexpSimpleString ss) /*@*/; /*@exposed@*/ /*@null@*/ octet *simpleStringString(sexpSimpleString ss) diff --git a/rpmio/tax.c b/rpmio/tax.c new file mode 100644 index 000000000..14e884fac --- /dev/null +++ b/rpmio/tax.c @@ -0,0 +1,108 @@ +#include "system.h" + +#include "base64.h" +#include "mpbarrett.h" +#include "mp.h" +#include "popt.h" + +#include "debug.h" + +const char * applechallenge = "09KF45soMYmvj6dpsUGiIg=="; + +#if 1 +const char * rsaaeskey = "\ +5QYIqmdZGTONY5SHjEJrqAhaa0W9wzDC5i6q221mdGZJ5ubO6Kg\ +yhC6U83wpY87TFdPRdfPQl2kVC7+Uefmx1bXdIUo07ZcJsqMbgtje4w2JQw0b\ +Uw2BlzNPmVGQOxfdpGc3LXZzNE0jI1D4conUEiW6rrzikXBhk7Y/i2naw13ayy\ +xaSwtkiJ0ltBQGYGErbV2tx43QSNj7O0JIG9GrF2GZZ6/UHo4VH+ZXgQ4NZvP/\ +QXPCsLutZsvusFDzIEq7TN1fveINOiwrzlN+bckEixvhXlvoQTWE2tjbmQYhMvO\ +FIly5gNbZiXi0l5AdolX4jDC2vndFHqWDks/3sPikNg==\ +"; +#else +const char * rsaaeskey = "5QYIqmdZGTONY5SHjEJrqAhaa0W9wzDC5i6q221mdGZJ5ubO6KgyhC6U83wpY87TFdPRdfPQl2kVC7+Uefmx1bXdIUo07ZcJsqMbgtje4w2JQw0bUw2BlzNPmVGQOxfdpGc3LXZzNE0jI1D4conUEiW6rrzikXBhk7Y/i2naw13ayyxaSwtkiJ0ltBQGYGErbV2tx43QSNj7O0JIG9GrF2GZZ6/UHo4VH+ZXgQ4NZvP/QXPCsLutZsvusFDzIEq7TN1fveINOiwrzlN+bckEixvhXlvoQTWE2tjbmQYhMvOFIly5gNbZiXi0l5AdolX4jDC2vndFHqWDks/3sPikNg=="; +#endif + +const char * aesiv = "zcZmAZtqh7uGcEwPXk0QeA=="; + +const char * appleresponse = "\ +u+msU8Cc7KBrVPjI/Ir8fOL8+C5D3Jsw1+acaW3MNTndrTQAeb/a\ +5m10UVBX6wb/DYQGY+b28ksSwBjN0nFOk4Y2cODEf83FAh7B\ +mkLpmpkpplp7zVXQ+Z9DcB6gC60ZsS3t98aoR7tSzVLKZNgi2X2sC+vGsz\ +utQxX03HK008VjcdngHv3g1p2knoETd07T6eVfZCmPqp6Ga7Dj8VIIj/GEP3\ +AjjDx3lJnQBXUDmxM484YXLXZjWFXCiY8GJt6whjf7/2c3rIoT3Z7PQpEvPmM\ +1MXU9cv4NL59Y/q0OAVQ38foOz7eGAhfvjOsCnHU25aik7/7ToIYt1tyVtap/kA==\ +"; + +/** + * Convert to hex. + * @param t target buffer (returned) + * @param s source bytes + * @param nbytes no. of bytes + * @return target buffer + */ +/*@unused@*/ static inline +char * pgpHexCvt(/*@returned@*/ char *t, const byte *s, int nbytes) + /*@modifies *t @*/ +{ + static char hex[] = "0123456789abcdef"; +/*@-boundswrite@*/ + while (nbytes-- > 0) { + unsigned int i; + i = *s++; + *t++ = hex[ (i >> 4) & 0xf ]; + *t++ = hex[ (i ) & 0xf ]; + } + *t = '\0'; +/*@=boundswrite@*/ + return t; +} + +/** + * Return hex formatted representation of bytes. + * @todo Remove static buffer. + * @param p bytes + * @param plen no. of bytes + * @return hex formatted string + */ +/*@unused@*/ static inline /*@observer@*/ +char * pgpHexStr(const byte *p, unsigned int plen) + /*@*/ +{ + static char prbuf[2048]; + char *t = prbuf; + t = pgpHexCvt(t, p, plen); + return prbuf; +} + +static int doit(const char * msg, const char * sig) +{ + unsigned char * dec; + size_t declen; + int rc; + + if ((rc = b64decode(sig, (void **)&dec, &declen)) != 0) { + fprintf(stderr, "*** b64decode returns %d\n", rc); + return rc; + } + + fprintf(stderr, "*** %p[%d] %s\n", dec, declen, msg); + if (declen == 256) { + fprintf(stderr, "%s\n", pgpHexStr(dec, declen/2)); + fprintf(stderr, "%s\n", pgpHexStr(dec+declen/2, declen/2)); + } else { + fprintf(stderr, "%s\n", pgpHexStr(dec, declen)); + } + + return 0; + +} + +int +main (int argc, char *argv[]) +{ + + doit("applechallenge", applechallenge); + doit("rsaaeskey", rsaaeskey); + doit("aesiv", aesiv); + doit("appleresponse", appleresponse); +} diff --git a/rpmio/ugid.c b/rpmio/ugid.c index 65d31bcbd..b9a0898c2 100644 --- a/rpmio/ugid.c +++ b/rpmio/ugid.c @@ -103,11 +103,15 @@ int gnameToGid(const char * thisGname, gid_t * gid) if (grent == NULL) { /* XXX The filesystem package needs group/lock w/o getgrnam. */ if (strcmp(thisGname, "lock") == 0) { +/*@-boundswrite@*/ *gid = lastGid = 54; +/*@=boundswrite@*/ return 0; } else if (strcmp(thisGname, "mail") == 0) { +/*@-boundswrite@*/ *gid = lastGid = 12; +/*@=boundswrite@*/ return 0; } else return -1; @@ -561,16 +561,18 @@ typedef /*@concrete@*/ struct /*@=constuse@*/ #endif -extern int glob (const char *pattern, int flags, - int (*errfunc) (const char *, int), - /*@out@*/ glob_t *pglob) +/*@-type@*/ /* XXX glob64_t */ +extern int glob (const char *__pattern, int __flags, + int (*__errfunc) (const char *, int), + /*@out@*/ glob_t *__pglob) /*@globals errno, fileSystem @*/ - /*@modifies *pglob, errno, fileSystem @*/; + /*@modifies *__pglob, errno, fileSystem @*/; /* XXX only annotation is a white lie */ -extern void globfree (/*@only@*/ glob_t *pglob) - /*@modifies *pglob @*/; +extern void globfree (/*@only@*/ glob_t *__pglob) + /*@modifies *__pglob @*/; +/*@=type@*/ #ifdef _GNU_SOURCE -extern int glob_pattern_p (const char *pattern, int quote) +extern int glob_pattern_p (const char *__pattern, int __quote) /*@*/; #endif |