patch 8.0.0883: invalid memory access with nonsensical script
Problem: Invalid memory access with nonsensical script.
Solution: Check "dstlen" being positive. (Dominique Pelle)
diff --git a/src/misc1.c b/src/misc1.c
index 4e51bed..5f8b092 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -4180,13 +4180,18 @@
}
else if ((src[0] == ' ' || src[0] == ',') && !one)
at_start = TRUE;
- *dst++ = *src++;
- --dstlen;
+ if (dstlen > 0)
+ {
+ *dst++ = *src++;
+ --dstlen;
- if (startstr != NULL && src - startstr_len >= srcp
- && STRNCMP(src - startstr_len, startstr, startstr_len) == 0)
- at_start = TRUE;
+ if (startstr != NULL && src - startstr_len >= srcp
+ && STRNCMP(src - startstr_len, startstr,
+ startstr_len) == 0)
+ at_start = TRUE;
+ }
}
+
}
*dst = NUL;
}