Module Name: src Committed By: christos Date: Wed Mar 6 20:49:20 UTC 2013
Modified Files: src/usr.bin/mail: fio.c Log Message: since we are calling realpath() earlier now, we need to expand the name of the folder in case it contained variables like $HOME. To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/usr.bin/mail/fio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/mail/fio.c diff -u src/usr.bin/mail/fio.c:1.38 src/usr.bin/mail/fio.c:1.39 --- src/usr.bin/mail/fio.c:1.38 Wed Feb 20 09:38:13 2013 +++ src/usr.bin/mail/fio.c Wed Mar 6 15:49:20 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: fio.c,v 1.38 2013/02/20 14:38:13 christos Exp $ */ +/* $NetBSD: fio.c,v 1.39 2013/03/06 20:49:20 christos Exp $ */ /* * Copyright (c) 1980, 1993 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "@(#)fio.c 8.2 (Berkeley) 4/20/95"; #else -__RCSID("$NetBSD: fio.c,v 1.38 2013/02/20 14:38:13 christos Exp $"); +__RCSID("$NetBSD: fio.c,v 1.39 2013/03/06 20:49:20 christos Exp $"); #endif #endif /* not lint */ @@ -394,18 +394,21 @@ getfold(char *name, size_t namesize) { char unres[PATHSIZE], res[PATHSIZE]; char *folder; + const char *f; if ((folder = value(ENAME_FOLDER)) == NULL) return -1; - if (*folder != '/') { - (void)snprintf(unres, sizeof(unres), "%s/%s", homedir, folder); - folder = unres; + if ((f = expand(folder)) == NULL) + return -1; + if (*f != '/') { + (void)snprintf(unres, sizeof(unres), "%s/%s", homedir, f); + f = unres; } - if (realpath(folder, res) == NULL) - warn("Can't canonicalize folder `%s'", folder); + if (realpath(f, res) == NULL) + warn("Can't canonicalize folder `%s'", f); else - folder = res; - (void)strlcpy(name, folder, namesize); + f = res; + (void)strlcpy(name, f, namesize); return 0; }