summaryrefslogtreecommitdiffstats
path: root/runtime/debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/debug.c')
-rw-r--r--runtime/debug.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/runtime/debug.c b/runtime/debug.c
index 41dd1370..8b4950a1 100644
--- a/runtime/debug.c
+++ b/runtime/debug.c
@@ -931,7 +931,7 @@ void
dbgoprint(obj_t *pObj, char *fmt, ...)
{
va_list ap;
- char pszWriteBuf[1024];
+ char pszWriteBuf[32*1024];
size_t lenWriteBuf;
if(!(Debug && debugging_on))
@@ -970,14 +970,13 @@ dbgprintf(char *fmt, ...)
va_start(ap, fmt);
lenWriteBuf = vsnprintf(pszWriteBuf, sizeof(pszWriteBuf), fmt, ap);
va_end(ap);
-
if(lenWriteBuf >= sizeof(pszWriteBuf)) {
- /* if we need to truncate, do it in a somewhat useful way... */
- pszWriteBuf[sizeof(pszWriteBuf) - 5] = '!';
- pszWriteBuf[sizeof(pszWriteBuf) - 4] = '.';
- pszWriteBuf[sizeof(pszWriteBuf) - 3] = '.';
- pszWriteBuf[sizeof(pszWriteBuf) - 2] = '.';
- pszWriteBuf[sizeof(pszWriteBuf) - 1] = '\n';
+ /* prevent buffer overrruns and garbagge display */
+ pszWriteBuf[sizeof(pszWriteBuf) - 5] = '.';
+ pszWriteBuf[sizeof(pszWriteBuf) - 4] = '.';
+ pszWriteBuf[sizeof(pszWriteBuf) - 3] = '.';
+ pszWriteBuf[sizeof(pszWriteBuf) - 2] = '\n';
+ pszWriteBuf[sizeof(pszWriteBuf) - 1] = '\0';
lenWriteBuf = sizeof(pszWriteBuf);
}
dbgprint(NULL, pszWriteBuf, lenWriteBuf);