[PATCH] dump_log_entry: replace magic constant with a variable
Petr Tesarik
ptesarik at suse.cz
Fri Aug 29 01:36:20 PDT 2014
If the buffer space requirements are changed, the magic constant is
hard to spot, and the failure is easily overlooked, because it may
fail only under special conditions.
Signed-off-by: Petr Tesarik <ptesarik at suse.cz>
---
makedumpfile.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/makedumpfile.c b/makedumpfile.c
index b4b6eca..37dea37 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -3949,7 +3949,7 @@ static int
dump_log_entry(char *logptr, int fp)
{
char *msg, *p, *bufp;
- unsigned int i, text_len;
+ unsigned int i, text_len, buf_need;
unsigned long long ts_nsec;
char buf[BUFSIZE];
ulonglong nanos;
@@ -3966,9 +3966,11 @@ dump_log_entry(char *logptr, int fp)
bufp = buf;
bufp += sprintf(buf, "[%5lld.%06ld] ", nanos, rem/1000);
+ /* How much buffer space is needed in the worst case */
+ buf_need = sizeof("\\xXX\n");
+
for (i = 0, p = msg; i < text_len; i++, p++) {
- /* 6bytes = "\\x%02x" + '\n' + '\0' */
- if (bufp - buf >= sizeof(buf) - 6) {
+ if (bufp - buf >= sizeof(buf) - buf_need) {
if (write(info->fd_dumpfile, buf, bufp - buf) < 0)
return FALSE;
bufp = buf;
--
More information about the kexec
mailing list