diff --git a/RELNOTES b/RELNOTES index 9050331d..66506cd0 100644 --- a/RELNOTES +++ b/RELNOTES @@ -195,6 +195,10 @@ by Eric Young (eay@cryptsoft.com). - Add more option definitions. [ISC-Bugs #40562] +- Correct outputting of long lines in the lease file when writing + a lease that includes long strings in an execute statement. + [ISC-Bugs #40994] + Changes since 4.3.3b1 - None diff --git a/common/execute.c b/common/execute.c index cd2ebbc1..da68201d 100644 --- a/common/execute.c +++ b/common/execute.c @@ -3,7 +3,7 @@ Support for executable statements. */ /* - * Copyright (c) 2009,2013-2015 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2009,2013-2016 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 2004-2007 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1998-2003 by Internet Software Consortium * @@ -990,18 +990,25 @@ void write_statements (file, statements, indent) break; case execute_statement: + #ifdef ENABLE_EXECUTE - indent_spaces (file, indent); + indent_spaces(file, indent); col = token_print_indent(file, indent + 4, indent + 4, "", "", "execute"); col = token_print_indent(file, col, indent + 4, " ", "", "("); - col = token_print_indent(file, col, indent + 4, "\"", "\"", r->data.execute.command); - for (expr = r->data.execute.arglist; expr; expr = expr->data.arg.next) { - col = token_print_indent(file, col, indent + 4, "", " ", ","); - col = write_expression (file, expr->data.arg.val, col, indent + 4, 0); - } - (void) token_print_indent(file, col, indent + 4, "", "", ");"); + col = token_print_indent_concat(file, col, indent + 4, + "", "", "\"", + r->data.execute.command, + "\"", (char *)0); + for (expr = r->data.execute.arglist; expr; expr = expr->data.arg.next) { + col = token_print_indent(file, col, indent + 4, + "", " ", ","); + col = write_expression(file, expr->data.arg.val, + col, indent + 4, 0); + } + (void) token_print_indent(file, col, indent + 4, + "", "", ");"); #else /* !ENABLE_EXECUTE */ log_fatal("Impossible case at %s:%d (ENABLE_EXECUTE " "is not defined).", MDL);