summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/fib_lookup/lookup.c4
-rw-r--r--lib/handlers.c3
-rw-r--r--lib/msg.c3
-rw-r--r--lib/route/route_obj.c4
-rw-r--r--src/lib/utils.c3
5 files changed, 10 insertions, 7 deletions
diff --git a/lib/fib_lookup/lookup.c b/lib/fib_lookup/lookup.c
index 6fe8dae..3d07317 100644
--- a/lib/fib_lookup/lookup.c
+++ b/lib/fib_lookup/lookup.c
@@ -124,7 +124,7 @@ errout:
static void result_dump_line(struct nl_object *obj, struct nl_dump_params *p)
{
struct flnl_result *res = (struct flnl_result *) obj;
- char buf[128];
+ char buf[256];
nl_dump_line(p, "table %s prefixlen %u next-hop-selector %u\n",
rtnl_route_table2str(res->fr_table_id, buf, sizeof(buf)),
@@ -133,7 +133,7 @@ static void result_dump_line(struct nl_object *obj, struct nl_dump_params *p)
nl_rtntype2str(res->fr_type, buf, sizeof(buf)));
nl_dump(p, "scope %s error %s (%d)\n",
rtnl_scope2str(res->fr_scope, buf, sizeof(buf)),
- strerror(-res->fr_error), res->fr_error);
+ strerror_r(-res->fr_error, buf, sizeof(buf)), res->fr_error);
}
static void result_dump_details(struct nl_object *obj, struct nl_dump_params *p)
diff --git a/lib/handlers.c b/lib/handlers.c
index ee1376b..e52c850 100644
--- a/lib/handlers.c
+++ b/lib/handlers.c
@@ -79,9 +79,10 @@ static int nl_error_handler_verbose(struct sockaddr_nl *who,
struct nlmsgerr *e, void *arg)
{
FILE *ofd = arg ? arg : stderr;
+ char buf[256];
fprintf(ofd, "-- Error received: %s\n-- Original message: ",
- strerror(-e->error));
+ strerror_r(-e->error, buf, sizeof(buf)));
print_header_content(ofd, &e->msg);
fprintf(ofd, "\n");
diff --git a/lib/msg.c b/lib/msg.c
index 8198ded..62d9683 100644
--- a/lib/msg.c
+++ b/lib/msg.c
@@ -879,10 +879,11 @@ void nl_msg_dump(struct nl_msg *msg, FILE *ofd)
hdr->nlmsg_len >= nlmsg_msg_size(sizeof(struct nlmsgerr))) {
struct nl_msg *errmsg;
struct nlmsgerr *err = nlmsg_data(hdr);
+ char buf[256];
fprintf(ofd, " [ERRORMSG] %zu octets\n", sizeof(*err));
fprintf(ofd, " .error = %d \"%s\"\n", err->error,
- strerror(-err->error));
+ strerror_r(-err->error, buf, sizeof(buf)));
fprintf(ofd, " [ORIGINAL MESSAGE] %zu octets\n", sizeof(*hdr));
errmsg = nlmsg_inherit(&err->msg);
diff --git a/lib/route/route_obj.c b/lib/route/route_obj.c
index 8f1e515..795047f 100644
--- a/lib/route/route_obj.c
+++ b/lib/route/route_obj.c
@@ -208,7 +208,7 @@ static void route_dump_details(struct nl_object *a, struct nl_dump_params *p)
{
struct rtnl_route *r = (struct rtnl_route *) a;
struct nl_cache *link_cache;
- char buf[128];
+ char buf[256];
int i;
link_cache = nl_cache_mngt_require_safe("route/link");
@@ -259,7 +259,7 @@ static void route_dump_details(struct nl_object *a, struct nl_dump_params *p)
if ((r->ce_mask & ROUTE_ATTR_CACHEINFO) && r->rt_cacheinfo.rtci_error) {
nl_dump_line(p, " cacheinfo error %d (%s)\n",
r->rt_cacheinfo.rtci_error,
- strerror(-r->rt_cacheinfo.rtci_error));
+ strerror_r(-r->rt_cacheinfo.rtci_error, buf, sizeof(buf)));
}
if (r->ce_mask & ROUTE_ATTR_METRICS) {
diff --git a/src/lib/utils.c b/src/lib/utils.c
index 78ad260..e5eacde 100644
--- a/src/lib/utils.c
+++ b/src/lib/utils.c
@@ -70,6 +70,7 @@ void nl_cli_print_version(void)
void nl_cli_fatal(int err, const char *fmt, ...)
{
va_list ap;
+ char buf[256];
fprintf(stderr, "Error: ");
@@ -79,7 +80,7 @@ void nl_cli_fatal(int err, const char *fmt, ...)
va_end(ap);
fprintf(stderr, "\n");
} else
- fprintf(stderr, "%s\n", strerror(err));
+ fprintf(stderr, "%s\n", strerror_r(err, buf, sizeof(buf)));
exit(abs(err));
}