mailinfo: do not let find_boundary() touch global "line" directly
authorJunio C Hamano <gitster@pobox.com>
Sun, 18 Oct 2015 22:40:06 +0000 (15:40 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 Oct 2015 22:37:50 +0000 (15:37 -0700)
With the previous two commits, we established that the local
variable "line" in handle_body() and handle_boundary() functions
always refer to the global "line" that is used as the common and
shared "current line from the input". They are the only callers of
the last function that refers to the global line directly, i.e.
find_boundary(). Pass "line" as a parameter to this leaf function
to complete the clean-up. Now the only function that directly refers
to the global "line" is the caller of handle_body() at the very
beginning of this whole callchain.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/mailinfo.c
index 9b3f349a11be03223d93d4e7fa0e013ba4155912..e7edd743ce2583f675caa5654516511b02747f73 100644 (file)
@@ -786,10 +786,10 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
        return 1;
 }
 
-static int find_boundary(void)
+static int find_boundary(struct strbuf *line)
 {
-       while (!strbuf_getline(&line, fin, '\n')) {
-               if (*content_top && is_multipart_boundary(&line))
+       while (!strbuf_getline(line, fin, '\n')) {
+               if (*content_top && is_multipart_boundary(line))
                        return 1;
        }
        return 0;
@@ -821,7 +821,7 @@ static int handle_boundary(struct strbuf *line, int *filter_stage, int *header_s
                strbuf_release(&newline);
 
                /* skip to the next boundary */
-               if (!find_boundary())
+               if (!find_boundary(line))
                        return 0;
                goto again;
        }
@@ -850,7 +850,7 @@ static void handle_body(struct strbuf *line)
 
        /* Skip up to the first boundary */
        if (*content_top) {
-               if (!find_boundary())
+               if (!find_boundary(line))
                        goto handle_body_out;
        }