manifest: rewrite pathlen() to not cross entry boundary
Even though the entire manifest data should be terminated by '\0', it seems
not nice to scan '\0' over the entry terminator, '\n'.
--- a/mercurial/cext/manifest.c Wed Sep 26 21:24:14 2018 +0900
+++ b/mercurial/cext/manifest.c Wed Sep 05 21:32:45 2018 +0900
@@ -42,7 +42,8 @@
/* get the length of the path for a line */
static size_t pathlen(line *l)
{
- return strlen(l->start);
+ const char *end = memchr(l->start, '\0', l->len);
+ return (end) ? (size_t)(end - l->start) : l->len;
}
/* get the node value of a single line */