diff options
author | jbj <devnull@localhost> | 2003-04-02 21:16:26 +0000 |
---|---|---|
committer | jbj <devnull@localhost> | 2003-04-02 21:16:26 +0000 |
commit | 95f01d39a57c3c3d8ebf80cfd78e67c550dc32e5 (patch) | |
tree | d8eaa0d6c4bb93c5c12a18a3e066de0d68e3aae2 /lib/formats.c | |
parent | 1f366d6a00d1cf8dc08a40fe789a1b68b4b80a5a (diff) | |
download | librpm-tizen-95f01d39a57c3c3d8ebf80cfd78e67c550dc32e5.tar.gz librpm-tizen-95f01d39a57c3c3d8ebf80cfd78e67c550dc32e5.tar.bz2 librpm-tizen-95f01d39a57c3c3d8ebf80cfd78e67c550dc32e5.zip |
Splint clean.
CVS patchset: 6729
CVS date: 2003/04/02 21:16:26
Diffstat (limited to 'lib/formats.c')
-rw-r--r-- | lib/formats.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/lib/formats.c b/lib/formats.c index cf07474ca..a07a9fcfc 100644 --- a/lib/formats.c +++ b/lib/formats.c @@ -244,7 +244,10 @@ static size_t xmlstrlen(const char * s) size_t len = 0; int c; - while ((c = *s++) != '\0') { +/*@-boundsread@*/ + while ((c = *s++) != '\0') +/*@=boundsread@*/ + { switch (c) { case '<': case '>': len += 4; /*@switchbreak@*/ break; case '&': len += 5; /*@switchbreak@*/ break; @@ -262,6 +265,7 @@ static char * xmlstrcpy(/*@returned@*/ char * t, const char * s) char * te = t; int c; +/*@-bounds@*/ while ((c = *s++) != '\0') { switch (c) { case '<': te = stpcpy(te, "<"); /*@switchbreak@*/ break; @@ -271,6 +275,7 @@ static char * xmlstrcpy(/*@returned@*/ char * t, const char * s) } } *te = '\0'; +/*@=bounds@*/ return t; } @@ -283,6 +288,7 @@ static char * xmlstrcpy(/*@returned@*/ char * t, const char * s) * @param element (unused) * @return formatted string */ +/*@-bounds@*/ static /*@only@*/ char * xmlFormat(int_32 type, const void * data, char * formatPrefix, int padding, /*@unused@*/ int element) @@ -294,7 +300,9 @@ static /*@only@*/ char * xmlFormat(int_32 type, const void * data, const char * s = NULL; char * t, * te; unsigned long anint = 0; + int xx; +/*@-branchstate@*/ switch (type) { case RPM_I18NSTRING_TYPE: case RPM_STRING_TYPE: @@ -303,9 +311,15 @@ static /*@only@*/ char * xmlFormat(int_32 type, const void * data, break; case RPM_BIN_TYPE: { int cpl = b64encode_chars_per_line; +/*@-mods@*/ b64encode_chars_per_line = 0; +/*@=mods@*/ +/*@-formatconst@*/ s = base64Format(type, data, formatPrefix, padding, element); +/*@=formatconst@*/ +/*@-mods@*/ b64encode_chars_per_line = cpl; +/*@=mods@*/ xtag = "base64"; } break; case RPM_CHAR_TYPE: @@ -324,14 +338,17 @@ static /*@only@*/ char * xmlFormat(int_32 type, const void * data, return xstrdup(_("(invalid xml type)")); /*@notreached@*/ break; } +/*@=branchstate@*/ +/*@-branchstate@*/ if (s == NULL) { int tlen = 32; t = memset(alloca(tlen+1), 0, tlen+1); - snprintf(t, tlen, "%lu", anint); + xx = snprintf(t, tlen, "%lu", anint); s = t; xtag = "integer"; } +/*@=branchstate@*/ nb = 2 * strlen(xtag) + sizeof("\t<></>") + xmlstrlen(s); te = t = alloca(nb); @@ -341,19 +358,24 @@ static /*@only@*/ char * xmlFormat(int_32 type, const void * data, te = stpcpy( stpcpy( stpcpy(te, "</"), xtag), ">"); /* XXX s was malloc'd */ +/*@-branchstate@*/ if (!strcmp(xtag, "base64")) s = _free(s); +/*@=branchstate@*/ nb += padding; val = xmalloc(nb+1); /*@-boundswrite@*/ strcat(formatPrefix, "s"); /*@=boundswrite@*/ - snprintf(val, nb, formatPrefix, t); +/*@-formatconst@*/ + xx = snprintf(val, nb, formatPrefix, t); +/*@=formatconst@*/ val[nb] = '\0'; return val; } +/*@=bounds@*/ /** * Display signature fingerprint and time. |