Ramkumar Ramachandra <artagnon@xxxxxxxxx> writes: >>> + for (p = buf.buf; *p; p = strchr(p, '\n') + 1) { >> >> This relies on a "\n" at the end of the last line... > > Yes, that was intentional. Every editor I know of inserts a '\n' at > the end of the last line,... Why do you think "diff" has a special codepath to report "No newline at end of file"? Because some editors do leave an incomplete line incomplete. When working on a "buf" with an incomplete line at the end, the last round of the loop will assign "(char *) 1" to "p", try to see "*p" is NUL and segfault, no? -- 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