]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: standard: make indent_msg() support empty messages
authorWilly Tarreau <w@1wt.eu>
Wed, 10 Oct 2012 06:56:47 +0000 (08:56 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 10 Oct 2012 15:42:39 +0000 (17:42 +0200)
indent_msg() is called with dynamically generated messages, so these
may be empty (NULL) when an empty list is being dumped. Support this
and return a NULL too.

src/standard.c

index 49810fccac935218beca3d3c8a325b0e57b2e9c1..287931adf316132e6a5b7f6d9307c5780f048475 100644 (file)
@@ -1840,7 +1840,8 @@ char *memprintf(char **out, const char *format, ...)
 
 /* Used to add <level> spaces before each line of <out>, unless there is only one line.
  * The input argument is automatically freed and reassigned. The result will have to be
- * freed by the caller.
+ * freed by the caller. It also supports being passed a NULL which results in the same
+ * output.
  * Example of use :
  *   parse(cmd, &err); (callee: memprintf(&err, ...))
  *   fprintf(stderr, "Parser said: %s\n", indent_error(&err));
@@ -1854,6 +1855,9 @@ char *indent_msg(char **out, int level)
        int lastlf = 0;
        int len;
 
+       if (!out || !*out)
+               return NULL;
+
        in = *out - 1;
        while ((in = strchr(in + 1, '\n')) != NULL) {
                lastlf = in - *out;