diff options
Diffstat (limited to 'bin/rcp/rcp.c')
-rw-r--r-- | bin/rcp/rcp.c | 7 |
1 files changed, 5 insertions, 2 deletions
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); |