void nft_chain_free(struct nft_chain *c)
{
if (c->table != NULL)
- free(c->table);
+ xfree(c->table);
if (c->type != NULL)
- free(c->type);
+ xfree(c->type);
- free(c);
+ xfree(c);
}
EXPORT_SYMBOL(nft_chain_free);
switch (attr) {
case NFT_CHAIN_ATTR_TABLE:
if (c->table) {
- free(c->table);
+ xfree(c->table);
c->table = NULL;
}
break;
return;
case NFT_CHAIN_ATTR_TYPE:
if (c->type) {
- free(c->type);
+ xfree(c->type);
c->type = NULL;
}
break;
break;
case NFT_CHAIN_ATTR_TABLE:
if (c->table)
- free(c->table);
+ xfree(c->table);
c->table = strdup(data);
break;
break;
case NFT_CHAIN_ATTR_TYPE:
if (c->type)
- free(c->type);
+ xfree(c->type);
c->type = strdup(data);
break;
nft_chain_attr_set_u32(c, NFT_CHAIN_ATTR_POLICY, policy);
}
- free(root);
+ xfree(root);
return 0;
err:
- free(root);
+ xfree(root);
return -1;
#else
errno = EOPNOTSUPP;
}
if (c->type)
- free(c->type);
+ xfree(c->type);
c->type = strdup(node->child->value.opaque);
c->flags |= (1 << NFT_CHAIN_ATTR_TYPE);
return -1;
}
if (c->table)
- free(c->table);
+ xfree(c->table);
c->table = strdup(node->child->value.opaque);
c->flags |= (1 << NFT_CHAIN_ATTR_TABLE);
}
hooknum = nft_str2hooknum(hooknum_str);
- free((char *)hooknum_str);
+ xfree(hooknum_str);
if (hooknum < 0) {
mxmlDelete(tree);
list_del(&r->head);
nft_chain_free(r);
}
- free(list);
+ xfree(list);
}
EXPORT_SYMBOL(nft_chain_list_free);
void nft_chain_list_iter_destroy(struct nft_chain_list_iter *iter)
{
- free(iter);
+ xfree(iter);
}
EXPORT_SYMBOL(nft_chain_list_iter_destroy);
void nft_rule_expr_free(struct nft_rule_expr *expr)
{
- free(expr);
+ xfree(expr);
}
EXPORT_SYMBOL(nft_rule_expr_free);
/* Get and set <chain> */
if (reg->chain)
- free(reg->chain);
+ xfree(reg->chain);
reg->chain = (char *)nft_mxml_str_parse(tree, "chain",
MXML_DESCEND);
break;
case NFT_EXPR_IMM_CHAIN:
if (imm->data.chain)
- free(imm->data.chain);
+ xfree(imm->data.chain);
imm->data.chain = strdup(data);
break;
switch(type) {
case NFT_EXPR_LOG_PREFIX:
if (log->prefix)
- free(log->prefix);
+ xfree(log->prefix);
log->prefix = strdup(data);
break;
if (tb[NFTA_LOG_PREFIX]) {
if (log->prefix)
- free(log->prefix);
+ xfree(log->prefix);
log->prefix = strdup(mnl_attr_get_str(tb[NFTA_LOG_PREFIX]));
e->flags |= (1 << NFT_EXPR_LOG_GROUP);
break;
case NFT_EXPR_MT_INFO:
if (mt->data)
- free((void *)mt->data);
+ xfree(mt->data);
mt->data = data;
mt->data_len = data_len;
void *match_data;
if (match->data)
- free((void *) match->data);
+ xfree(match->data);
match_data = calloc(1, len);
if (match_data == NULL)
break;
case NFT_EXPR_TG_INFO:
if (tg->data)
- free((void *)tg->data);
+ xfree(tg->data);
tg->data = data;
tg->data_len = data_len;
void *target_data;
if (target->data)
- free((void *) target->data);
+ xfree(target->data);
target_data = calloc(1, len);
if (target_data == NULL)
int nft_str2verdict(const char *verdict);
int nft_get_value(enum nft_type type, void *val, void *out);
+void xfree(const void *ptr);
+
struct expr_ops;
struct nft_rule_expr {
goto err_expr;
tree = mxmlLoadString(NULL, xml_text, MXML_OPAQUE_CALLBACK);
- free(xml_text);
+ xfree(xml_text);
if (tree == NULL)
goto err_expr;
}
ret = nft_data_reg_xml_parse(data_reg, tmpstr);
- free(tmpstr);
+ xfree(tmpstr);
if (ret < 0) {
errno = EINVAL;
node->next = save;
if (set_elem_str == NULL) {
- free(elem);
+ xfree(elem);
goto enomem;
}
if (nft_set_elem_parse(elem, NFT_SET_PARSE_XML,
set_elem_str) != 0) {
- free(set_elem_str);
- free(elem);
+ xfree(set_elem_str);
+ xfree(elem);
return NULL;
}
- free(set_elem_str);
+ xfree(set_elem_str);
return elem;
einval:
void nft_rule_free(struct nft_rule *r)
{
if (r->table != NULL)
- free(r->table);
+ xfree(r->table);
if (r->chain != NULL)
- free(r->chain);
+ xfree(r->chain);
- free(r);
+ xfree(r);
}
EXPORT_SYMBOL(nft_rule_free);
switch (attr) {
case NFT_RULE_ATTR_TABLE:
if (r->table) {
- free(r->table);
+ xfree(r->table);
r->table = NULL;
}
break;
case NFT_RULE_ATTR_CHAIN:
if (r->chain) {
- free(r->chain);
+ xfree(r->chain);
r->chain = NULL;
}
break;
switch(attr) {
case NFT_RULE_ATTR_TABLE:
if (r->table)
- free(r->table);
+ xfree(r->table);
r->table = strdup(data);
break;
case NFT_RULE_ATTR_CHAIN:
if (r->chain)
- free(r->chain);
+ xfree(r->chain);
r->chain = strdup(data);
break;
if (tb[NFTA_EXPR_DATA]) {
if (expr->ops->parse(expr, tb[NFTA_EXPR_DATA]) < 0) {
- free(expr);
+ xfree(expr);
return -1;
}
}
}
if (r->table)
- free(r->table);
+ xfree(r->table);
r->table = strdup(mxmlElementGetAttr(tree, "table"));
r->flags |= (1 << NFT_RULE_ATTR_TABLE);
}
if (r->chain)
- free(r->chain);
+ xfree(r->chain);
r->chain = strdup(mxmlElementGetAttr(tree, "chain"));
r->flags |= (1 << NFT_RULE_ATTR_CHAIN);
void nft_rule_expr_iter_destroy(struct nft_rule_expr_iter *iter)
{
- free(iter);
+ xfree(iter);
}
EXPORT_SYMBOL(nft_rule_expr_iter_destroy);
list_del(&r->head);
nft_rule_free(r);
}
- free(list);
+ xfree(list);
}
EXPORT_SYMBOL(nft_rule_list_free);
void nft_rule_list_iter_destroy(struct nft_rule_list_iter *iter)
{
- free(iter);
+ xfree(iter);
}
EXPORT_SYMBOL(nft_rule_list_iter_destroy);
struct nft_set_elem *elem, *tmp;
if (s->table != NULL)
- free(s->table);
+ xfree(s->table);
if (s->name != NULL)
- free(s->name);
+ xfree(s->name);
list_for_each_entry_safe(elem, tmp, &s->element_list, head) {
list_del(&elem->head);
nft_set_elem_free(elem);
}
- free(s);
+ xfree(s);
}
EXPORT_SYMBOL(nft_set_free);
case NFT_SET_ATTR_TABLE:
if (s->flags & (1 << NFT_SET_ATTR_TABLE))
if (s->table) {
- free(s->table);
+ xfree(s->table);
s->table = NULL;
}
break;
case NFT_SET_ATTR_NAME:
if (s->flags & (1 << NFT_SET_ATTR_NAME))
if (s->name) {
- free(s->name);
+ xfree(s->name);
s->name = NULL;
}
break;
switch(attr) {
case NFT_SET_ATTR_TABLE:
if (s->table)
- free(s->table);
+ xfree(s->table);
s->table = strdup(data);
break;
case NFT_SET_ATTR_NAME:
if (s->name)
- free(s->name);
+ xfree(s->name);
s->name = strdup(data);
break;
goto err;
if (s->name)
- free(s->name);
+ xfree(s->name);
s->name = name;
s->flags |= (1 << NFT_SET_ATTR_NAME);
goto err;
if (s->table)
- free(s->table);
+ xfree(s->table);
s->table = strdup(table);
s->flags |= (1 << NFT_SET_ATTR_TABLE);
list_del(&s->head);
nft_set_free(s);
}
- free(list);
+ xfree(list);
}
EXPORT_SYMBOL(nft_set_list_free);
void nft_set_list_iter_destroy(struct nft_set_list_iter *iter)
{
- free(iter);
+ xfree(iter);
}
EXPORT_SYMBOL(nft_set_list_iter_destroy);
void nft_set_elem_free(struct nft_set_elem *s)
{
- free(s);
+ xfree(s);
}
EXPORT_SYMBOL(nft_set_elem_free);
case NFT_SET_ELEM_ATTR_CHAIN:
if (s->flags & (1 << NFT_SET_ELEM_ATTR_CHAIN)) {
if (s->data.chain) {
- free(s->data.chain);
+ xfree(s->data.chain);
s->data.chain = NULL;
}
}
break;
case NFT_SET_ELEM_ATTR_CHAIN: /* NFTA_SET_ELEM_DATA */
if (s->data.chain)
- free(s->data.chain);
+ xfree(s->data.chain);
s->data.chain = strdup(data);
break;
}
}
if (ret < 0)
- free(e);
+ xfree(e);
/* Add this new element to this set */
list_add_tail(&e->head, &s->element_list);
void nft_set_elems_iter_destroy(struct nft_set_elems_iter *iter)
{
- free(iter);
+ xfree(iter);
}
EXPORT_SYMBOL(nft_set_elems_iter_destroy);
void nft_table_free(struct nft_table *t)
{
if (t->flags & (1 << NFT_TABLE_ATTR_NAME))
- free(t->name);
+ xfree(t->name);
- free(t);
+ xfree(t);
}
EXPORT_SYMBOL(nft_table_free);
switch (attr) {
case NFT_TABLE_ATTR_NAME:
if (t->name) {
- free(t->name);
+ xfree(t->name);
t->name = NULL;
}
break;
switch (attr) {
case NFT_TABLE_ATTR_NAME:
if (t->name)
- free(t->name);
+ xfree(t->name);
t->name = strdup(data);
t->flags |= (1 << NFT_TABLE_ATTR_NAME);
}
if (t->name)
- free(t->name);
+ xfree(t->name);
t->name = strdup(mxmlElementGetAttr(tree, "name"));
t->flags |= (1 << NFT_TABLE_ATTR_NAME);
nft_table_attr_set_u32(t, NFT_TABLE_ATTR_FLAGS, table_flag);
- free(root);
+ xfree(root);
return 0;
err:
- free(root);
+ xfree(root);
return -1;
#else
errno = EOPNOTSUPP;
list_del(&r->head);
nft_table_free(r);
}
- free(list);
+ xfree(list);
}
EXPORT_SYMBOL(nft_table_list_free);
void nft_table_list_iter_destroy(struct nft_table_list_iter *iter)
{
- free(iter);
+ xfree(iter);
}
EXPORT_SYMBOL(nft_table_list_iter_destroy);
return -1;
}
+
+void xfree(const void *ptr)
+{
+ free((void *)ptr);
+}