Boundary lines in emails are treated as a special case. As a result of processing the boundary line a new line will be read into the buffer. The string length variable 'len' is evaluated before the boundary case, thus there is the possibility the length of the string does not match the new line read in (in the boundary line case). This causes a partial output of the line to the patch file. The fix is trivial, evaluate the length of the string right before processing it. Signed-off-by: Don Zickus <dzickus@xxxxxxxxxx> --- I noticed this the other day, just never got a chance to send the fix out. This might be the same problem I ran into. Cheers, Don builtin-mailinfo.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c index 2894e34..cedda18 100644 --- a/builtin-mailinfo.c +++ b/builtin-mailinfo.c @@ -795,7 +795,7 @@ static void handle_body(void) int rc = 0; static char newline[2000]; static char *np = newline; - int len = strlen(line); + int len; /* Skip up to the first boundary */ if (content_top->boundary) { @@ -814,6 +814,9 @@ static void handle_body(void) return; } + /* line may have changed after handling boundary, check len */ + len = strlen(line); + /* Unwrap transfer encoding */ len = decode_transfer_encoding(line, sizeof(line), len); if (len < 0) { -- 1.5.6.rc2.48.g13da -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html