From: VMware, Inc <> Date: Tue, 26 Apr 2011 21:07:02 +0000 (-0700) Subject: lib/string: more cleanup X-Git-Tag: 2011.04.25-402641~35 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9d588f23a03ea3107d60713f010080c6792f56fe;p=thirdparty%2Fopen-vm-tools.git lib/string: more cleanup Signed-off-by: Marcelo Vanzin --- diff --git a/open-vm-tools/lib/string/bsd_vsnprintf.c b/open-vm-tools/lib/string/bsd_vsnprintf.c index 5ecd2cdbd..2fbf58457 100644 --- a/open-vm-tools/lib/string/bsd_vsnprintf.c +++ b/open-vm-tools/lib/string/bsd_vsnprintf.c @@ -99,8 +99,10 @@ BSDFmt_SFVWrite(BSDFmt_StrBuf *sbuf, BSDFmt_UIO *uio) if (sbuf->alloc) { size_t n = sbuf->index + uio->uio_resid + 1; // +1 for \0 + if (n > sbuf->size) { char *p; + ASSERT(sbuf->size > 0); n = ROUNDUP(n, sbuf->size); if ((p = realloc(sbuf->buf, n)) == NULL) { @@ -148,9 +150,11 @@ BSDFmt_SPrint(BSDFmt_StrBuf *sbuf, BSDFmt_UIO *uio) uio->uio_iovcnt = 0; return (0); } + err = BSDFmt_SFVWrite(sbuf, uio); uio->uio_resid = 0; uio->uio_iovcnt = 0; + return err; } @@ -326,8 +330,7 @@ BSDFmt_WCharToUTF8(wchar_t *wcsarg, int prec) targSize = (-1 == prec) ? sourceSize : MIN(sourceSize, prec); - while (TRUE) - { + while (TRUE) { /* * Pad by 4, because we need to NUL-terminate. */ @@ -625,6 +628,7 @@ bsd_vsnprintf_core(char **outbuf, if (sbuf.alloc) { size_t n = strlen(fmt0) + 1; // +1 for \0 + if (n > 1) { n = ROUNDUP(n, 64); } @@ -717,6 +721,7 @@ bsd_vsnprintf_core(char **outbuf, if (grouping != NULL && *grouping == '\0') { static char g[] = { CHAR_MAX, '\0' }; + grouping = g; } goto rflag;