diff options
author | Bushman, Jeff <JBushman@ciena.com> | 2012-05-16 15:50:25 (GMT) |
---|---|---|
committer | Thomas Graf <tgraf@redhat.com> | 2012-05-18 13:03:46 (GMT) |
commit | ca883b61bc88498309afb82be9c8fa071febc741 (patch) | |
tree | 3543b47813bfde052dfca68cfdb00df5118f628c /lib/utils.c | |
parent | 24d577c93dc0b3382d45ca8b29d3226e182e0669 (diff) | |
download | libnl-ca883b61bc88498309afb82be9c8fa071febc741.zip libnl-ca883b61bc88498309afb82be9c8fa071febc741.tar.gz libnl-ca883b61bc88498309afb82be9c8fa071febc741.tar.bz2 |
Fix for dumping objects to a buffer instead of file descriptor
Attached is a patch to fix two problems with dumping objects to a buffer in=
stead of a file descriptor.
One was a problem in detecting the end of the buffer in the newline code.
The other was a problem with clearing the whole buffer before printing each=
object.
Diffstat (limited to 'lib/utils.c')
-rw-r--r-- | lib/utils.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/utils.c b/lib/utils.c index 5a35a53..36b6292 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -824,7 +824,7 @@ void nl_new_line(struct nl_dump_params *params) else if (params->dp_buf) strncat(params->dp_buf, " ", params->dp_buflen - - sizeof(params->dp_buf) - 1); + strlen(params->dp_buf) - 1); } } @@ -844,7 +844,8 @@ static void dump_one(struct nl_dump_params *parms, const char *fmt, parms->dp_cb(parms, buf); else strncat(parms->dp_buf, buf, - parms->dp_buflen - strlen(parms->dp_buf) - 1); + parms->dp_buflen - + strlen(parms->dp_buf) - 1); free(buf); } } @@ -1053,9 +1054,6 @@ void dump_from_ops(struct nl_object *obj, struct nl_dump_params *params) params->dp_pre_dump = 1; } - if (params->dp_buf) - memset(params->dp_buf, 0, params->dp_buflen); - if (obj->ce_ops->oo_dump[type]) obj->ce_ops->oo_dump[type](obj, params); } |