summaryrefslogtreecommitdiffstats
path: root/bin/rcp
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2002-06-20 06:00:51 +0000
committerjmallett <jmallett@FreeBSD.org>2002-06-20 06:00:51 +0000
commitf49002f4f645a3830346fc6d790ec32a2d43a4c2 (patch)
tree59eafe1456b306b1a32759a27249f24c4ad2222a /bin/rcp
parent218c435dac739fd53484058fe0fa5b9f2f40dd89 (diff)
downloadFreeBSD-src-f49002f4f645a3830346fc6d790ec32a2d43a4c2.zip
FreeBSD-src-f49002f4f645a3830346fc6d790ec32a2d43a4c2.tar.gz
Use size_t consistently and complete some uncompleted code resulting in a
memory leak by assigning and freeing a variable appropriately as well as keeping track of the amount of allocated ram properly. MFC after: 1 month
Diffstat (limited to 'bin/rcp')
-rw-r--r--bin/rcp/extern.h2
-rw-r--r--bin/rcp/rcp.c7
2 files changed, 6 insertions, 3 deletions
diff --git a/bin/rcp/extern.h b/bin/rcp/extern.h
index a07c3a6..ebd2beb 100644
--- a/bin/rcp/extern.h
+++ b/bin/rcp/extern.h
@@ -35,7 +35,7 @@
*/
typedef struct {
- int cnt;
+ size_t cnt;
char *buf;
} BUF;
diff --git a/bin/rcp/rcp.c b/bin/rcp/rcp.c
index 8f0a01d..b34506d 100644
--- a/bin/rcp/rcp.c
+++ b/bin/rcp/rcp.c
@@ -670,14 +670,17 @@ sink(int argc, char *argv[])
if (*cp++ != ' ')
SCREWUP("size not delimited");
if (targisdir) {
- static char *namebuf;
- static int cursize;
+ static char *namebuf = NULL;
+ static size_t cursize;
size_t need;
need = strlen(targ) + strlen(cp) + 250;
if (need > cursize) {
+ if (namebuf != NULL)
+ free(namebuf);
if (!(namebuf = malloc(need)))
run_err("%s", strerror(errno));
+ cursize = need;
}
(void)snprintf(namebuf, need, "%s%s%s", targ,
*targ ? "/" : "", cp);
OpenPOWER on IntegriCloud