* path.cc (mount): Do more strict checking on posix path arguments.

This commit is contained in:
Christopher Faylor 2003-06-17 16:52:18 +00:00
parent c89701c687
commit 0d58ef9dac
2 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2003-06-17 Christopher Faylor <cgf@redhat.com>
* path.cc (mount): Do more strict checking on posix path arguments.
2003-06-15 Christopher Faylor <cgf@redhat.com> 2003-06-15 Christopher Faylor <cgf@redhat.com>
Throughout, remove "include <errno.h>" from files which already include Throughout, remove "include <errno.h>" from files which already include

View File

@ -1894,10 +1894,16 @@ mount_info::from_registry ()
/* FIXME: Need a mutex to avoid collisions with other tasks. */ /* FIXME: Need a mutex to avoid collisions with other tasks. */
int int
mount_info::add_reg_mount (const char * native_path, const char * posix_path, unsigned mountflags) mount_info::add_reg_mount (const char *native_path, const char *posix_path, unsigned mountflags)
{ {
int res = 0; int res = 0;
if (strchr (posix_path, '\\'))
{
set_errno (EINVAL);
goto err1;
}
/* Add the mount to the right registry location, depending on /* Add the mount to the right registry location, depending on
whether MOUNT_SYSTEM is set in the mount flags. */ whether MOUNT_SYSTEM is set in the mount flags. */
if (!(mountflags & MOUNT_SYSTEM)) /* current_user mount */ if (!(mountflags & MOUNT_SYSTEM)) /* current_user mount */
@ -1948,6 +1954,7 @@ mount_info::add_reg_mount (const char * native_path, const char * posix_path, un
return 0; /* Success */ return 0; /* Success */
err: err:
__seterrno_from_win_error (res); __seterrno_from_win_error (res);
err1:
return -1; return -1;
} }
@ -2497,7 +2504,9 @@ mount (const char *win32_path, const char *posix_path, unsigned flags)
{ {
int res = -1; int res = -1;
if (flags & MOUNT_CYGDRIVE) /* normal mount */ if (strpbrk (posix_path, "\\:"))
set_errno (EINVAL);
else if (flags & MOUNT_CYGDRIVE) /* normal mount */
{ {
/* When flags include MOUNT_CYGDRIVE, take this to mean that /* When flags include MOUNT_CYGDRIVE, take this to mean that
we actually want to change the cygdrive prefix and flags we actually want to change the cygdrive prefix and flags