diff options
Diffstat (limited to 'jcnf/jcnf.c')
-rwxr-xr-x[-rw-r--r--] | jcnf/jcnf.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/jcnf/jcnf.c b/jcnf/jcnf.c index 799be7c..273796e 100644..100755 --- a/jcnf/jcnf.c +++ b/jcnf/jcnf.c @@ -413,6 +413,7 @@ static jc_error jcnf_delete_key( if ((ix+1) < p->nkeys) { memmove(p->keys+ix, p->keys+ix+1,sizeof(jc_key *) * p->nkeys-ix-1); } + free(p->keys[p->nkeys-1]); p->nkeys--; p->modified = 1; @@ -607,6 +608,7 @@ static int jcnf_yajl_start_map(void *ctx) { return 1; } +/* Callback from yajl */ static int jcnf_yajl_map_key(void *ctx, const unsigned char * stringVal, size_t stringLen) { jcnf *p = (jcnf *)ctx; @@ -650,6 +652,8 @@ static int jcnf_yajl_end_map(void *ctx) { /* End of map without start of map */ return 0; } + if (p->recds[p->nrecd-1].key != NULL) + free(p->recds[p->nrecd-1].key); p->nrecd--; #ifdef NEVER |