projects
/
citadel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5c7e69e
)
* another bug in increasing buffers.
author
Wilfried Göesgens
<willi@citadel.org>
Fri, 29 May 2009 18:11:40 +0000
(18:11 +0000)
committer
Wilfried Göesgens
<willi@citadel.org>
Fri, 29 May 2009 18:11:40 +0000
(18:11 +0000)
libcitadel/lib/stringbuf.c
patch
|
blob
|
history
diff --git
a/libcitadel/lib/stringbuf.c
b/libcitadel/lib/stringbuf.c
index 9eec319e2f18292b07579024eebbf775909387bc..94728a9bb160417d8386f5dce137d220e18c3886 100644
(file)
--- a/
libcitadel/lib/stringbuf.c
+++ b/
libcitadel/lib/stringbuf.c
@@
-906,6
+906,7
@@
void StrBufVAppendPrintf(StrBuf *Buf, const char *format, va_list ap)
newused = Offset + nWritten;
if (newused >= Buf->BufSize) {
IncreaseBuf(Buf, 1, newused);
newused = Offset + nWritten;
if (newused >= Buf->BufSize) {
IncreaseBuf(Buf, 1, newused);
+ newused = Buf->BufSize + 1;
}
else {
Buf->BufUsed = Offset + nWritten;
}
else {
Buf->BufUsed = Offset + nWritten;
@@
-938,6
+939,7
@@
void StrBufAppendPrintf(StrBuf *Buf, const char *format, ...)
newused = Buf->BufUsed + nWritten;
if (newused >= Buf->BufSize) {
IncreaseBuf(Buf, 1, newused);
newused = Buf->BufUsed + nWritten;
if (newused >= Buf->BufSize) {
IncreaseBuf(Buf, 1, newused);
+ newused = Buf->BufSize + 1;
}
else {
Buf->BufUsed += nWritten;
}
else {
Buf->BufUsed += nWritten;
@@
-962,9
+964,12
@@
void StrBufPrintf(StrBuf *Buf, const char *format, ...)
va_start(arg_ptr, format);
nWritten = vsnprintf(Buf->buf, Buf->BufSize, format, arg_ptr);
va_end(arg_ptr);
va_start(arg_ptr, format);
nWritten = vsnprintf(Buf->buf, Buf->BufSize, format, arg_ptr);
va_end(arg_ptr);
- Buf->BufUsed = nWritten ;
- if (nWritten >= Buf->BufSize)
+ if (nWritten >= Buf->BufSize) {
IncreaseBuf(Buf, 0, 0);
IncreaseBuf(Buf, 0, 0);
+ nWritten = Buf->BufSize + 1;
+ continue;
+ }
+ Buf->BufUsed = nWritten ;
}
}
}
}