--- a/src/expr.c +++ a/src/expr.c @@ -279,10 +279,13 @@ int nftnl_expr_snprintf(char *buf, size_t remain, const struct nftnl_expr *expr, if (remain) buf[0] = '\0'; + #pragma push_macro("snprintf") + #undef snprintf if (!expr->ops->snprintf || type != NFTNL_OUTPUT_DEFAULT) return 0; ret = expr->ops->snprintf(buf + offset, remain, flags, expr); + #pragma pop_macro("snprintf") SNPRINTF_BUFFER_SIZE(ret, remain, offset); return offset; --- a/src/object.c +++ a/src/object.c @@ -396,7 +396,10 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t remain, SNPRINTF_BUFFER_SIZE(ret, remain, offset); if (obj->ops) { + #pragma push_macro("snprintf") + #undef snprintf ret = obj->ops->snprintf(buf + offset, remain, flags, obj); + #pragma pop_macro("snprintf") SNPRINTF_BUFFER_SIZE(ret, remain, offset); } ret = snprintf(buf + offset, remain, "]");