commit bf69261597ef00f3b708403675234c519d9da248
parent 7e08082ffe69a4de3dc8521fc0b9f65b18c4ae1e
Author: Chris Allegretta <chrisa@asty.org>
Date: Mon, 8 Jan 2001 16:59:19 +0000
real_dir_from_tilde(): ops, fix case where buf =~, silly crash
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@463 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,4 +1,8 @@
CVS code -
+- files.c:
+ real_dir_from_tilde()
+ - Oops, fix case where buf ="~", silly crash (bug discovered by
+ Neil Parks).
nano 0.9.25 - 01/07/2001
General -
diff --git a/files.c b/files.c
@@ -589,11 +589,15 @@ char *real_dir_from_tilde(char *buf)
if (buf[0] == '~') {
if (buf[1] == '~')
goto abort; /* Handle ~~ without segfaulting =) */
- else if (buf[1] == '/') {
+ else if (buf[1] == 0 || buf[1] == '/') {
if (getenv("HOME") != NULL) {
dirtmp = nmalloc(strlen(buf) + 2 + strlen(getenv("HOME")));
- sprintf(dirtmp, "%s/%s", getenv("HOME"), &buf[2]);
+ if (strlen(buf) > 2)
+ sprintf(dirtmp, "%s/%s", getenv("HOME"), &buf[2]);
+ else
+ sprintf(dirtmp, "%s/", getenv("HOME"));
+
}
} else if (buf[1] != 0) {