diff options
Diffstat (limited to 'src/process.c')
-rw-r--r-- | src/process.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/process.c b/src/process.c index c17680bf..0eec34ac 100644 --- a/src/process.c +++ b/src/process.c @@ -188,7 +188,8 @@ int monitor(char *cmdname, int pid, int numfds, int *fds, int reexec, int quiet, int bytesread = 0; do { - char *buf=calloc(8192,sizeof(char)); + char *b, *buf=calloc(8192,sizeof(char)); + b = buf; bytesread = read(pfds[y].fd,buf,8192); if (bytesread==-1) { perror("read"); @@ -251,11 +252,16 @@ int monitor(char *cmdname, int pid, int numfds, int *fds, int reexec, int quiet, } cmdargs[cmdargc+1]=NULL; processArgs(cmdargc+1,cmdargs,1); + for (z=0;z<(cmdargc);z++) { + free(cmdargs[z]); + } + free(cmdargs); } } + if (tmpstr) free(tmpstr); } } - free(buf); + free(b); } while ( bytesread==8192 ); } y++; |