From 9a5174c8a3a1a2a358be57ecb72fa2740b10cd0d Mon Sep 17 00:00:00 2001 From: Rafaël Carré Date: Tue, 11 Aug 2009 16:12:03 +0000 Subject: Fix logf() multilines handling Each line (of MAX_LOGF_ENTRY characters) would be marked with LOGF_TERMINATE_CONTINUE_LINE, but still be padded with a '\0' This also reverts r22250 which worked around the problem in logfdump() Flyspray: FS#10513 Author: Amaury Pouly git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22253 a1c6a512-1295-4272-9138-f99709370657 --- firmware/logf.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'firmware/logf.c') diff --git a/firmware/logf.c b/firmware/logf.c index 6e3e532450..02ab79d0a0 100644 --- a/firmware/logf.c +++ b/firmware/logf.c @@ -145,16 +145,17 @@ void _logf(const char *format, ...) while(len > MAX_LOGF_ENTRY) { ptr = logfbuffer[logfindex]; - strlcpy(ptr, buf + tlen, MAX_LOGF_ENTRY); + memcpy(ptr, buf + tlen, MAX_LOGF_ENTRY); ptr[MAX_LOGF_ENTRY] = LOGF_TERMINATE_CONTINUE_LINE; logfindex++; check_logfindex(); - len -= MAX_LOGF_ENTRY-1; - tlen += MAX_LOGF_ENTRY-1; + len -= MAX_LOGF_ENTRY; + tlen += MAX_LOGF_ENTRY; multiline = true; } + ptr = logfbuffer[logfindex]; - strcpy(ptr, buf + tlen); + memcpy(ptr, buf + tlen,len-tlen); if(len < MAX_LOGF_ENTRY) /* pad with spaces up to the MAX_LOGF_ENTRY byte border */ -- cgit