summaryrefslogtreecommitdiff
path: root/navit/debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'navit/debug.c')
-rw-r--r--navit/debug.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/navit/debug.c b/navit/debug.c
index 6d1bd4c95..2d6e8fdc5 100644
--- a/navit/debug.c
+++ b/navit/debug.c
@@ -155,12 +155,12 @@ parse_dbg_level(struct attr *dbg_level_attr, struct attr *level_attr)
if(!strcmp(dbg_level_attr->u.str,"debug")){
return lvl_debug;
}
- dbg(lvl_error, "Invalid debug level in config: '%s'\n", dbg_level_attr->u.str);
+ dbg(lvl_error, "Invalid debug level in config: '%s'", dbg_level_attr->u.str);
} else if (level_attr) {
if (level_attr->u.num>= lvl_error &&
level_attr->u.num<= lvl_debug)
return level_attr->u.num;
- dbg(lvl_error, "Invalid debug level in config: %ld\n", level_attr->u.num);
+ dbg(lvl_error, "Invalid debug level in config: %ld", level_attr->u.num);
}
return lvl_unset;
}
@@ -308,7 +308,14 @@ debug_vprintf(dbg_level level, const char *module, const int mlen, const char *f
#if defined HAVE_API_WIN32_CE
#define vsnprintf _vsnprintf
#endif
- vsnprintf(debug_message+strlen(debug_message),4095-strlen(debug_message),fmt,ap);
+ vsnprintf(debug_message+strlen(debug_message),sizeof(debug_message)-1-strlen(debug_message),fmt,ap);
+#ifdef HAVE_API_WIN32_BASE
+ if (strlen(debug_message)<sizeof(debug_message))
+ debug_message[strlen(debug_message)] = '\r'; /* For Windows platforms, add \r at the end of the buffer (if any room) */
+#endif
+ if (strlen(debug_message)<sizeof(debug_message))
+ debug_message[strlen(debug_message)] = '\n'; /* Add \n at the end of the buffer (if any room) */
+ debug_message[sizeof(debug_message)-1] = '\0'; /* Force NUL-termination of the string (if buffer size contraints did not allow for full string to fit */
#ifdef DEBUG_WIN32_CE_MESSAGEBOX
mbstowcs(muni, debug_message, strlen(debug_message)+1);
MessageBoxW(NULL, muni, TEXT("Navit - Error"), MB_APPLMODAL|MB_OK|MB_ICONERROR);
@@ -391,14 +398,11 @@ debug_dump_mallocs(void)
{
struct malloc_head *head=malloc_heads;
int i;
- dbg(lvl_debug,"mallocs %d\n",mallocs);
+ dbg(lvl_debug,"mallocs %d",mallocs);
while (head) {
fprintf(stderr,"unfreed malloc from %s of size %d\n",head->where,head->size);
for (i = 0 ; i < 8 ; i++)
fprintf(stderr,"\tlist *%p\n",head->return_address[i]);
-#if 0
- fprintf(stderr,"%s\n",head+1);
-#endif
head=head->next;
}
}
@@ -414,7 +418,7 @@ debug_malloc(const char *where, int line, const char *func, int size)
debug_malloc_size+=size;
if (debug_malloc_size/(1024*1024) != debug_malloc_size_m) {
debug_malloc_size_m=debug_malloc_size/(1024*1024);
- dbg(lvl_debug,"malloced %d kb\n",debug_malloc_size/1024);
+ dbg(lvl_debug,"malloced %d kb",debug_malloc_size/1024);
}
head=malloc(size+sizeof(*head)+sizeof(*tail));
head->magic=0xdeadbeef;