From 9e41d36684e8547f82118a256c98039ce5568f16 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Wed, 9 Dec 1998 17:48:35 +0000 Subject: [PATCH] Small fix. --- src/daemon/slave.c | 3 ++- sysdeps/freebsd/procargs.c | 16 +++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/daemon/slave.c b/src/daemon/slave.c index 2ed009b5..6681eaf9 100644 --- a/src/daemon/slave.c +++ b/src/daemon/slave.c @@ -88,7 +88,8 @@ handle_slave_connection (int input, int output) &resp->u.data.proc_args, pid, max_len); do_output (output, resp, _offset_data (proc_args), - resp->u.data.proc_args.size, ptr); + ptr ? resp->u.data.proc_args.size+1 : 0, + ptr); glibtop_free_r (server, ptr); break; #endif diff --git a/sysdeps/freebsd/procargs.c b/sysdeps/freebsd/procargs.c index 8312e474..553e48d1 100644 --- a/sysdeps/freebsd/procargs.c +++ b/sysdeps/freebsd/procargs.c @@ -49,7 +49,7 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf, { struct kinfo_proc *pinfo; char *retval, **args, **ptr; - unsigned size = 0; + unsigned size = 0, pos = 0; int count; char filename [BUFSIZ]; @@ -87,16 +87,18 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf, for (ptr = args; *ptr; ptr++) size += strlen (*ptr)+1; - buf->size = size+2; - - retval = glibtop_malloc_r (server, buf->size); - memset (retval, 0, buf->size); + size += 2; + retval = glibtop_malloc_r (server, size); + memset (retval, 0, size); for (ptr = args; *ptr; ptr++) { - if (*retval) strcat (retval, " "); - strcat (retval, *ptr); + int len = strlen (*ptr)+1; + memcpy (retval+pos, *ptr, len); + pos += len; } + buf->size = pos ? pos-1 : 0; + buf->flags = _glibtop_sysdeps_proc_args; return retval;