in real_dir_from_tilde(), fix long-standing problem where directory
names that began with "~", but that weren't users' home directories, could be erroneously treated as users' home directories (e.g. "~d/" would be treated as "~daemon/") git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4074 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
446002bd79
commit
e93cfd10c0
|
@ -1,3 +1,11 @@
|
||||||
|
2007-04-17 David Lawrence Ramsey <pooka109@gmail.com>
|
||||||
|
|
||||||
|
* files.c (real_dir_from_tilde): Fix long-standing problem where
|
||||||
|
directory names that began with "~", but that weren't users'
|
||||||
|
home directories, could be erroneously treated as users' home
|
||||||
|
directories (e.g. "~d/" would be treated as "~daemon/"). (DLR,
|
||||||
|
found by Justin Fletcher)
|
||||||
|
|
||||||
2007-04-16 David Lawrence Ramsey <pooka109@gmail.com>
|
2007-04-16 David Lawrence Ramsey <pooka109@gmail.com>
|
||||||
|
|
||||||
* files.c (real_dir_from_tilde): Fix segfault when dealing with
|
* files.c (real_dir_from_tilde): Fix segfault when dealing with
|
||||||
|
|
|
@ -1995,7 +1995,8 @@ char *real_dir_from_tilde(const char *buf)
|
||||||
do {
|
do {
|
||||||
userdata = getpwent();
|
userdata = getpwent();
|
||||||
} while (userdata != NULL &&
|
} while (userdata != NULL &&
|
||||||
strncmp(userdata->pw_name, buf + 1, i - 1) != 0);
|
(strncmp(userdata->pw_name, buf + 1, i - 1) != 0 ||
|
||||||
|
strlen(userdata->pw_name) != strnlen(buf + 1, i - 1)));
|
||||||
endpwent();
|
endpwent();
|
||||||
if (userdata != NULL)
|
if (userdata != NULL)
|
||||||
tilde_dir = userdata->pw_dir;
|
tilde_dir = userdata->pw_dir;
|
||||||
|
|
Loading…
Reference in New Issue