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

Reply via email to