fix a bug in mustach
[src/app-framework-main.git] / src / mustach.c
index 19df16f..03f3cb1 100644 (file)
@@ -47,7 +47,7 @@ static int getpartial(struct mustach_itf *itf, void *closure, const char *name,
                        rc = fputc(0, file) ? MUSTACH_ERROR_SYSTEM : 0;
                fclose(file);
                if (rc < 0) {
-                       free(result);
+                       free(*result);
                        *result = NULL;
                }
        }
@@ -76,11 +76,11 @@ static int process(const char *template, struct mustach_itf *itf, void *closure,
                }
                if (emit)
                        fwrite(template, (size_t)(beg - template), 1, file);
-               term = strstr(template, clstr);
+               beg += oplen;
+               term = strstr(beg, clstr);
                if (term == NULL)
                        return MUSTACH_ERROR_UNEXPECTED_END;
                template = term + cllen;
-               beg += oplen;
                len = (size_t)(term - beg);
                c = *beg;
                switch(c) {