mirror of
https://github.com/CTCaer/hekate.git
synced 2024-11-23 02:16:41 +00:00
ini: Always clear the section allocations
This commit is contained in:
parent
4160037c81
commit
62a73ee612
2 changed files with 7 additions and 19 deletions
|
@ -55,12 +55,9 @@ u32 _find_section_name(char *lbuf, u32 lblen, char schar)
|
||||||
ini_sec_t *_ini_create_section(link_t *dst, ini_sec_t *csec, char *name, u8 type)
|
ini_sec_t *_ini_create_section(link_t *dst, ini_sec_t *csec, char *name, u8 type)
|
||||||
{
|
{
|
||||||
if (csec)
|
if (csec)
|
||||||
{
|
|
||||||
list_append(dst, &csec->link);
|
list_append(dst, &csec->link);
|
||||||
csec = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
csec = (ini_sec_t *)malloc(sizeof(ini_sec_t));
|
csec = (ini_sec_t *)calloc(sizeof(ini_sec_t), 1);
|
||||||
csec->name = _strdup(name);
|
csec->name = _strdup(name);
|
||||||
csec->type = type;
|
csec->type = type;
|
||||||
|
|
||||||
|
@ -154,7 +151,7 @@ int ini_parse(link_t *dst, char *ini_path, bool is_dir)
|
||||||
{
|
{
|
||||||
u32 i = _find_section_name(lbuf, lblen, '=');
|
u32 i = _find_section_name(lbuf, lblen, '=');
|
||||||
|
|
||||||
ini_kv_t *kv = (ini_kv_t *)malloc(sizeof(ini_kv_t));
|
ini_kv_t *kv = (ini_kv_t *)calloc(sizeof(ini_kv_t), 1);
|
||||||
kv->key = _strdup(&lbuf[0]);
|
kv->key = _strdup(&lbuf[0]);
|
||||||
kv->val = _strdup(&lbuf[i + 1]);
|
kv->val = _strdup(&lbuf[i + 1]);
|
||||||
list_append(&csec->kvs, &kv->link);
|
list_append(&csec->kvs, &kv->link);
|
||||||
|
|
|
@ -72,12 +72,9 @@ static u32 _find_patch_section_name(char *lbuf, u32 lblen, char schar)
|
||||||
static ini_kip_sec_t *_ini_create_kip_section(link_t *dst, ini_kip_sec_t *ksec, char *name)
|
static ini_kip_sec_t *_ini_create_kip_section(link_t *dst, ini_kip_sec_t *ksec, char *name)
|
||||||
{
|
{
|
||||||
if (ksec)
|
if (ksec)
|
||||||
{
|
|
||||||
list_append(dst, &ksec->link);
|
list_append(dst, &ksec->link);
|
||||||
ksec = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ksec = (ini_kip_sec_t *)malloc(sizeof(ini_kip_sec_t));
|
ksec = (ini_kip_sec_t *)calloc(sizeof(ini_kip_sec_t), 1);
|
||||||
u32 i = _find_patch_section_name(name, strlen(name), ':') + 1;
|
u32 i = _find_patch_section_name(name, strlen(name), ':') + 1;
|
||||||
ksec->name = _strdup(name);
|
ksec->name = _strdup(name);
|
||||||
|
|
||||||
|
@ -105,8 +102,8 @@ int ini_patch_parse(link_t *dst, char *ini_path)
|
||||||
f_gets(lbuf, 512, &fp);
|
f_gets(lbuf, 512, &fp);
|
||||||
lblen = strlen(lbuf);
|
lblen = strlen(lbuf);
|
||||||
|
|
||||||
// Remove trailing newline.
|
// Remove trailing newline. Depends on 'FF_USE_STRFUNC 2' that removes \r.
|
||||||
if (lbuf[lblen - 1] == '\n' || lbuf[lblen - 1] == '\r')
|
if (lblen && lbuf[lblen - 1] == '\n')
|
||||||
lbuf[lblen - 1] = 0;
|
lbuf[lblen - 1] = 0;
|
||||||
|
|
||||||
if (lblen > 2 && lbuf[0] == '[') // Create new section.
|
if (lblen > 2 && lbuf[0] == '[') // Create new section.
|
||||||
|
@ -121,7 +118,7 @@ int ini_patch_parse(link_t *dst, char *ini_path)
|
||||||
u32 tmp = 0;
|
u32 tmp = 0;
|
||||||
u32 i = _find_patch_section_name(lbuf, lblen, '=');
|
u32 i = _find_patch_section_name(lbuf, lblen, '=');
|
||||||
|
|
||||||
ini_patchset_t *pt = (ini_patchset_t *)malloc(sizeof(ini_patchset_t));
|
ini_patchset_t *pt = (ini_patchset_t *)calloc(sizeof(ini_patchset_t), 1);
|
||||||
|
|
||||||
pt->name = _strdup(&lbuf[1]);
|
pt->name = _strdup(&lbuf[1]);
|
||||||
|
|
||||||
|
@ -145,13 +142,7 @@ int ini_patch_parse(link_t *dst, char *ini_path)
|
||||||
i += tmp + 1;
|
i += tmp + 1;
|
||||||
pt->dstData = _htoa(NULL, &lbuf[i], pt->length);
|
pt->dstData = _htoa(NULL, &lbuf[i], pt->length);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
pt->offset = 0;
|
|
||||||
pt->length = 0;
|
|
||||||
pt->srcData = NULL;
|
|
||||||
pt->dstData = NULL;
|
|
||||||
}
|
|
||||||
list_append(&ksec->pts, &pt->link);
|
list_append(&ksec->pts, &pt->link);
|
||||||
}
|
}
|
||||||
} while (!f_eof(&fp));
|
} while (!f_eof(&fp));
|
||||||
|
|
Loading…
Reference in a new issue