* path.cc (chdir): Check error conditions first.
This commit is contained in:
parent
e53c92a80e
commit
1279c76b6a
|
@ -1,3 +1,7 @@
|
||||||
|
2009-06-18 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* path.cc (chdir): Check error conditions first.
|
||||||
|
|
||||||
2009-06-17 Corinna Vinschen <corinna@vinschen.de>
|
2009-06-17 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* fhandler_socket.cc (fhandler_socket::recv_internal): Mark WSARecvMsg
|
* fhandler_socket.cc (fhandler_socket::recv_internal): Mark WSARecvMsg
|
||||||
|
|
|
@ -2575,7 +2575,11 @@ chdir (const char *in_dir)
|
||||||
bool doit = false;
|
bool doit = false;
|
||||||
const char *posix_cwd = NULL;
|
const char *posix_cwd = NULL;
|
||||||
int devn = path.get_devn ();
|
int devn = path.get_devn ();
|
||||||
if (!isvirtual_dev (devn))
|
if (!path.exists ())
|
||||||
|
set_errno (ENOENT);
|
||||||
|
else if (!path.isdir ())
|
||||||
|
set_errno (ENOTDIR);
|
||||||
|
else if (!isvirtual_dev (devn))
|
||||||
{
|
{
|
||||||
/* The sequence chdir("xx"); chdir(".."); must be a noop if xx
|
/* The sequence chdir("xx"); chdir(".."); must be a noop if xx
|
||||||
is not a symlink. This is exploited by find.exe.
|
is not a symlink. This is exploited by find.exe.
|
||||||
|
@ -2587,10 +2591,6 @@ chdir (const char *in_dir)
|
||||||
res = 0;
|
res = 0;
|
||||||
doit = true;
|
doit = true;
|
||||||
}
|
}
|
||||||
else if (!path.exists ())
|
|
||||||
set_errno (ENOENT);
|
|
||||||
else if (!path.isdir ())
|
|
||||||
set_errno (ENOTDIR);
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
posix_cwd = path.normalized_path;
|
posix_cwd = path.normalized_path;
|
||||||
|
|
Loading…
Reference in New Issue