commit c20aa17ae842149c0f6d5edaf64b67977b16cd3d
Author: Hiltjo Posthuma <[email protected]>
AuthorDate: Sat Jul 22 12:29:58 2017 +0200
Commit: Laslo Hunhold <[email protected]>
CommitDate: Sat Jul 22 13:23:10 2017 +0200
encode(): fix buffer-overflow and NUL terminate it
diff --git a/quark.c b/quark.c
index 99c873b..c4fa937 100644
--- a/quark.c
+++ b/quark.c
@@ -141,7 +141,7 @@ encode(char src[PATH_MAX], char dest[PATH_MAX])
size_t i;
char *s;
- for (s = src, i = 0; *s; s++) {
+ for (s = src, i = 0; *s && i < (PATH_MAX - 4); s++) {
if (iscntrl(*s) || (unsigned char)*s > 127) {
i += snprintf(dest + i, PATH_MAX - i, "%%%02X",
(unsigned char)*s);
@@ -150,6 +150,7 @@ encode(char src[PATH_MAX], char dest[PATH_MAX])
i++;
}
}
+ dest[i] = '\0';
}
static enum status