From c35ff6d8deabbb8b3251abfff09ba73b9e1edf59 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 6 Oct 1996 17:27:41 +0000 Subject: [PATCH] (retrieve): Got rid of `sprintf'. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@831 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/ftp/ftpd/ftpd.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/appl/ftp/ftpd/ftpd.c b/appl/ftp/ftpd/ftpd.c index f24a571e5..ad6bcfa56 100644 --- a/appl/ftp/ftpd/ftpd.c +++ b/appl/ftp/ftpd/ftpd.c @@ -819,12 +819,12 @@ retrieve(char *cmd, char *name) char *ext; char *cmd; } cmds[] = { - /* XXX -- fix below if %s is not last element */ - ".tar", "/bin/gtar cPf - %s", - ".tar.gz", "/bin/gtar zcPf - %s", - ".tar.Z", "/bin/gtar ZcPf - %s", - ".gz", "/bin/gzip -c %s", - ".Z", "/bin/compress -c %s", + /* XXX - make this more general */ + ".tar", "/bin/gtar cPf - ", + ".tar.gz", "/bin/gtar zcPf - ", + ".tar.Z", "/bin/gtar ZcPf - ", + ".gz", "/bin/gzip -c ", + ".Z", "/bin/compress -c ", NULL, NULL }; struct cmds *p; @@ -832,9 +832,15 @@ retrieve(char *cmd, char *name) char *tail = name + strlen(name) - strlen(p->ext); if(strcmp(tail, p->ext) == 0){ + strncpy(line, p->cmd, sizeof(line)); + line[sizeof(line) - 1] = '\0'; + strncat(line, name, sizeof(line)-strlen(line)); + line[sizeof(line) - 1] = '\0'; + line[strlen(line) - strlen(p->ext)] = 0; +#if 0 sprintf(line, p->cmd, name); /* XXX */ - line[strlen(name) - strlen(p->ext)] = 0; +#endif break; } }