From 39bce482456d2b9402e277fc4b5251f288234aa5 Mon Sep 17 00:00:00 2001 From: Yaroslav Tykhiy Date: Wed, 9 Jul 2003 12:46:24 +0000 Subject: [PATCH] Make a malloced copy of "chrootdir" even if it points to an absolute pathname inside "residue" so "chrootdir" can be simply freed later. PR: bin/53435 Submitted by: Yutaka Ishihara MFC after: 1 week --- libexec/ftpd/ftpd.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libexec/ftpd/ftpd.c b/libexec/ftpd/ftpd.c index 69353dc6075..31f9b2f6a1c 100644 --- a/libexec/ftpd/ftpd.c +++ b/libexec/ftpd/ftpd.c @@ -1494,9 +1494,11 @@ skip: * c) expand it to the absolute pathname if necessary. */ if (dochroot && residue && - (chrootdir = strtok(residue, " \t")) != NULL && - chrootdir[0] != '/') { - asprintf(&chrootdir, "%s/%s", pw->pw_dir, chrootdir); + (chrootdir = strtok(residue, " \t")) != NULL) { + if (chrootdir[0] != '/') + asprintf(&chrootdir, "%s/%s", pw->pw_dir, chrootdir); + else + chrootdir = strdup(chrootdir); /* so it can be freed */ if (chrootdir == NULL) fatalerror("Ran out of memory."); }