memset(new, 0, sizeof(struct ucl_macro));
new->h.handler = handler;
- new->name = strdup(macro);
+ new->name = UCL_STRDUP(macro);
if (new->name == NULL) {
UCL_FREE(sizeof(struct ucl_macro), new);
return false;
memset(new, 0, sizeof(struct ucl_macro));
new->h.context_handler = handler;
- new->name = strdup(macro);
+ new->name = UCL_STRDUP(macro);
if (new->name == NULL) {
UCL_FREE(sizeof(struct ucl_macro), new);
return false;
if (new != NULL) {
/* Remove variable */
DL_DELETE(parser->variables, new);
- free(new->var);
- free(new->value);
+ UCL_FREE(new->var_len + 1, new->var);
+ UCL_FREE(new->value_len + 1, new->value);
UCL_FREE(sizeof(struct ucl_variable), new);
}
else {
return;
}
memset(new, 0, sizeof(struct ucl_variable));
- new->var = strdup(var);
+ new->var = UCL_STRDUP(var);
new->var_len = strlen(var);
- new->value = strdup(value);
+ new->value = UCL_STRDUP(value);
new->value_len = strlen(value);
DL_APPEND(parser->variables, new);
}
else {
- free(new->value);
- new->value = strdup(value);
+ UCL_FREE(new->value_len + 1, new->value);
+ new->value = UCL_STRDUP(value);
new->value_len = strlen(value);
}
}
chunk->parse_type = parse_type;
if (parser->cur_file) {
- chunk->fname = strdup(parser->cur_file);
+ chunk->fname = UCL_STRDUP(parser->cur_file);
}
LL_PREPEND(parser->chunks, chunk);
}
if (obj->trash_stack[UCL_TRASH_KEY] == NULL && obj->key != NULL) {
deconst = __DECONST (ucl_object_t *, obj);
- deconst->trash_stack[UCL_TRASH_KEY] = malloc (obj->keylen + 1);
+ deconst->trash_stack[UCL_TRASH_KEY] = UCL_ALLOC(obj->keylen + 1);
if (deconst->trash_stack[UCL_TRASH_KEY] != NULL) {
memcpy (deconst->trash_stack[UCL_TRASH_KEY], obj->key, obj->keylen);
deconst->trash_stack[UCL_TRASH_KEY][obj->keylen] = '\0';
chunk->special_handlers = NULL;
if (chunk->fname) {
- free (chunk->fname);
+ UCL_FREE(strlen(chunk->fname) + 1, chunk->fname);
}
UCL_FREE (sizeof (*chunk), chunk);
/* Special case for strings */
if (obj->flags & UCL_OBJECT_BINARY) {
- deconst->trash_stack[UCL_TRASH_VALUE] = malloc (obj->len);
+ deconst->trash_stack[UCL_TRASH_VALUE] = UCL_ALLOC(obj->len);
if (deconst->trash_stack[UCL_TRASH_VALUE] != NULL) {
memcpy (deconst->trash_stack[UCL_TRASH_VALUE],
obj->value.sv,
}
}
else {
- deconst->trash_stack[UCL_TRASH_VALUE] = malloc (obj->len + 1);
+ deconst->trash_stack[UCL_TRASH_VALUE] = UCL_ALLOC(obj->len + 1);
if (deconst->trash_stack[UCL_TRASH_VALUE] != NULL) {
memcpy (deconst->trash_stack[UCL_TRASH_VALUE],
obj->value.sv,
}
LL_FOREACH_SAFE (parser->stack, stack, stmp) {
- free (stack);
+ UCL_FREE(sizeof(struct ucl_stack), stack);
}
HASH_ITER (hh, parser->macroes, macro, mtmp) {
- free (macro->name);
+ UCL_FREE(strlen(macro->name) + 1, macro->name);
HASH_DEL (parser->macroes, macro);
UCL_FREE (sizeof (struct ucl_macro), macro);
}
UCL_FREE (sizeof (struct ucl_pubkey), key);
}
LL_FOREACH_SAFE (parser->variables, var, vtmp) {
- free (var->value);
- free (var->var);
+ UCL_FREE(var->value_len + 1, var->value);
+ UCL_FREE(var->var_len + 1, var->var);
UCL_FREE (sizeof (struct ucl_variable), var);
}
LL_FOREACH_SAFE (parser->trash_objs, tr, trtmp) {
}
if (parser->cur_file) {
- free (parser->cur_file);
+ UCL_FREE(strlen(parser->cur_file) + 1, parser->cur_file);
}
if (parser->comments) {
struct ucl_curl_cbdata *cbdata = ud;
size_t realsize = size * nmemb;
- cbdata->buf = realloc (cbdata->buf, cbdata->buflen + realsize + 1);
+ cbdata->buf = UCL_REALLOC(cbdata->buf, cbdata->buflen + realsize + 1);
if (cbdata->buf == NULL) {
return 0;
}
}
*buflen = us.size;
- *buf = malloc (*buflen);
+ *buf = UCL_ALLOC(*buflen);
if (*buf == NULL) {
ucl_create_err (err, "cannot allocate buffer for URL %s: %s",
url, strerror (errno));
}
curl_easy_cleanup (curl);
if (cbdata.buf) {
- free (cbdata.buf);
+ UCL_FREE(cbdata.buflen, cbdata.buf);
}
return false;
}
urlbuf,
ERR_error_string (ERR_get_error (), NULL));
if (siglen > 0) {
- ucl_munmap (sigbuf, siglen);
+ UCL_FREE(siglen, sigbuf);
}
return false;
}
if (siglen > 0) {
- ucl_munmap (sigbuf, siglen);
+ UCL_FREE(siglen, sigbuf);
}
#endif
}
}
parser->state = prev_state;
- free (buf);
+ UCL_FREE(buflen, buf);
return res;
}
DL_FOREACH_SAFE (parser->variables, cur_var, tmp_var) {
if (strcmp (cur_var->var, "CURDIR") == 0 && old_curdir) {
DL_DELETE (parser->variables, cur_var);
- free (cur_var->var);
- free (cur_var->value);
+ UCL_FREE(cur_var->var_len + 1, cur_var->var);
+ UCL_FREE(cur_var->value_len + 1, cur_var->value);
UCL_FREE (sizeof (struct ucl_variable), cur_var);
} else if (strcmp (cur_var->var, "FILENAME") == 0 && old_filename) {
DL_DELETE (parser->variables, cur_var);
- free (cur_var->var);
- free (cur_var->value);
+ UCL_FREE(cur_var->var_len + 1, cur_var->var);
+ UCL_FREE(cur_var->value_len + 1, cur_var->value);
UCL_FREE (sizeof (struct ucl_variable), cur_var);
}
}
}
if (parser->cur_file) {
- free (parser->cur_file);
+ UCL_FREE(strlen(parser->cur_file) + 1, parser->cur_file);
}
- parser->cur_file = strdup (realbuf);
+ parser->cur_file = UCL_STRDUP(realbuf);
/* Define variables */
ucl_parser_register_variable (parser, "FILENAME", realbuf);
}
if (parser->cur_file) {
- free (parser->cur_file);
+ UCL_FREE(strlen(parser->cur_file) + 1, parser->cur_file);
}
parser->cur_file = NULL;
len = st.st_size;
if (other->type == UCL_USERDATA) {
sz = sizeof (struct ucl_object_userdata);
}
- new = malloc (sz);
+ new = UCL_ALLOC(sz);
if (new != NULL) {
memcpy (new, other, sz);
if (other->trash_stack[UCL_TRASH_KEY] != NULL) {
new->trash_stack[UCL_TRASH_KEY] = NULL;
if (other->key == (const char *)other->trash_stack[UCL_TRASH_KEY]) {
- new->trash_stack[UCL_TRASH_KEY] = malloc(other->keylen + 1);
+ new->trash_stack[UCL_TRASH_KEY] = UCL_ALLOC(other->keylen + 1);
memcpy(new->trash_stack[UCL_TRASH_KEY], other->trash_stack[UCL_TRASH_KEY], other->keylen);
new->trash_stack[UCL_TRASH_KEY][other->keylen] = '\0';
new->key = new->trash_stack[UCL_TRASH_KEY];
}
if (other->trash_stack[UCL_TRASH_VALUE] != NULL) {
new->trash_stack[UCL_TRASH_VALUE] =
- strdup (other->trash_stack[UCL_TRASH_VALUE]);
+ UCL_STRDUP(other->trash_stack[UCL_TRASH_VALUE]);
if (new->type == UCL_STRING) {
new->value.sv = new->trash_stack[UCL_TRASH_VALUE];
}