aboutsummaryrefslogtreecommitdiff
path: root/ctemplates.c
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2017-12-30 03:19:20 -0500
committerAlexander Pickering <alexandermpickering@gmail.com>2017-12-30 03:19:20 -0500
commit9c7882627fd28c060f53d86e194fb864302a347c (patch)
treeac99c8e33ac8949456a0a65f223ba1665464b796 /ctemplates.c
parent843d57b03549ed0481e6a4e39a1fdb0fa3311929 (diff)
downloadlibctemplates-9c7882627fd28c060f53d86e194fb864302a347c.tar.gz
libctemplates-9c7882627fd28c060f53d86e194fb864302a347c.tar.bz2
libctemplates-9c7882627fd28c060f53d86e194fb864302a347c.zip
Fixed a memory corruption bug
Fixed a bug where adding a var to a varlist would sometimes cause memroy corruption
Diffstat (limited to 'ctemplates.c')
-rw-r--r--ctemplates.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ctemplates.c b/ctemplates.c
index dd981ac..d858aa9 100644
--- a/ctemplates.c
+++ b/ctemplates.c
@@ -352,8 +352,8 @@ void
TMPL_add_var_to_varlist(struct TMPL_varlist* t, char* varname, char* var){
struct TMPL_varitem* vi = TMPL_alloc_varitem();
vi->type = vartype_var;
- size_t slen = strlen(var);
- vi->item.s = (char*)malloc(sizeof(char)*slen);
+ size_t slen = strlen(var);/*strlen dosn't count \0*/
+ vi->item.s = (char*)malloc(sizeof(char)*(slen + 1));
vi->item.s[slen] = '\0';
memcpy(vi->item.s,var,slen);
int succ = hashmap_put(t->map,varname,vi);