nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit a1cf6be43647502aa9ba9e28efaee453c9ce89e6
parent e081fb9d541d22bd940b263db7fb51da8ef71703
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date:   Tue, 17 Apr 2007 03:43:59 +0000

in get_real_dir_from_tilde(), fix segfault when dealing with directory
names that begin with "~", but that aren't users' home directories


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4072 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

Diffstat:
MChangeLog | 6++++++
Msrc/files.c | 5+++--
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,9 @@ +2007-04-16 David Lawrence Ramsey <pooka109@gmail.com> + + * files.c (get_real_dir_from_tilde): Fix segfault when dealing + with directory names that begin with "~", but that aren't users' + home directories. (DLR, found by Justin Fletcher) + 2007-04-11 Mike Frysinger <vapier@gentoo.org> * doc/syntax/asm.nanorc, doc/syntax/c.nanorc, diff --git a/src/files.c b/src/files.c @@ -1979,7 +1979,7 @@ char *real_dir_from_tilde(const char *buf) if (buf[0] == '~') { size_t i; - const char *tilde_dir; + const char *tilde_dir = NULL; /* Figure out how much of the str we need to compare. */ for (i = 1; buf[i] != '/' && buf[i] != '\0'; i++) @@ -1997,7 +1997,8 @@ char *real_dir_from_tilde(const char *buf) } while (userdata != NULL && strncmp(userdata->pw_name, buf + 1, i - 1) != 0); endpwent(); - tilde_dir = userdata->pw_dir; + if (userdata != NULL) + tilde_dir = userdata->pw_dir; } if (tilde_dir != NULL) {