* fhandler.cc (fhandler_base::fstat): Set the uid and gid fields
from the current effective ids. * fhandler_socket.cc (fhandler_socket::fstat): Keep the uid and gid set by fhandler_base::fstat. * security.cc (get_nt_attribute): Do not test wincap.has_security (). (get_nt_object_attribute): Ditto. (get_file_attribute): Add test for wincap.has_security (). (get_object_attribute): Ditto.
This commit is contained in:
parent
31ee99a41e
commit
2d388e433f
|
@ -1,3 +1,14 @@
|
||||||
|
2003-04-01 Pierre Humblet <pierre.humblet@ieee.org>
|
||||||
|
|
||||||
|
* fhandler.cc (fhandler_base::fstat): Set the uid and gid fields
|
||||||
|
from the current effective ids.
|
||||||
|
* fhandler_socket.cc (fhandler_socket::fstat): Keep the uid and gid set
|
||||||
|
by fhandler_base::fstat.
|
||||||
|
* security.cc (get_nt_attribute): Do not test wincap.has_security ().
|
||||||
|
(get_nt_object_attribute): Ditto.
|
||||||
|
(get_file_attribute): Add test for wincap.has_security ().
|
||||||
|
(get_object_attribute): Ditto.
|
||||||
|
|
||||||
2003-04-01 Corinna Vinschen <corinna@vinschen.de>
|
2003-04-01 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* dir.cc: Change __off32_t to _off_t and __off64_t to _off64_t
|
* dir.cc: Change __off32_t to _off_t and __off64_t to _off64_t
|
||||||
|
|
|
@ -981,6 +981,8 @@ fhandler_base::fstat (struct __stat64 *buf, path_conv *)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buf->st_uid = geteuid32 ();
|
||||||
|
buf->st_gid = getegid32 ();
|
||||||
buf->st_nlink = 1;
|
buf->st_nlink = 1;
|
||||||
buf->st_blksize = S_BLKSIZE;
|
buf->st_blksize = S_BLKSIZE;
|
||||||
time_as_timestruc_t (&buf->st_ctim);
|
time_as_timestruc_t (&buf->st_ctim);
|
||||||
|
|
|
@ -444,8 +444,6 @@ fhandler_socket::fstat (struct __stat64 *buf, path_conv *pc)
|
||||||
buf->st_dev = 0;
|
buf->st_dev = 0;
|
||||||
buf->st_ino = (ino_t) get_handle ();
|
buf->st_ino = (ino_t) get_handle ();
|
||||||
buf->st_mode = S_IFSOCK | S_IRWXU | S_IRWXG | S_IRWXO;
|
buf->st_mode = S_IFSOCK | S_IRWXU | S_IRWXG | S_IRWXO;
|
||||||
buf->st_uid = geteuid32 ();
|
|
||||||
buf->st_gid = getegid32 ();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -1322,9 +1322,6 @@ static int
|
||||||
get_nt_attribute (const char *file, mode_t *attribute,
|
get_nt_attribute (const char *file, mode_t *attribute,
|
||||||
__uid32_t *uidret, __gid32_t *gidret)
|
__uid32_t *uidret, __gid32_t *gidret)
|
||||||
{
|
{
|
||||||
if (!wincap.has_security ())
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
syscall_printf ("file: %s", file);
|
syscall_printf ("file: %s", file);
|
||||||
|
|
||||||
/* Yeah, sounds too much, but I've seen SDs of 2100 bytes! */
|
/* Yeah, sounds too much, but I've seen SDs of 2100 bytes! */
|
||||||
|
@ -1391,7 +1388,7 @@ get_file_attribute (int use_ntsec, const char *file,
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
if (use_ntsec && allow_ntsec)
|
if (use_ntsec && allow_ntsec && wincap.has_security ())
|
||||||
{
|
{
|
||||||
res = get_nt_attribute (file, attribute, uidret, gidret);
|
res = get_nt_attribute (file, attribute, uidret, gidret);
|
||||||
if (res)
|
if (res)
|
||||||
|
@ -1437,9 +1434,6 @@ static int
|
||||||
get_nt_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type,
|
get_nt_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type,
|
||||||
mode_t *attribute, __uid32_t *uidret, __gid32_t *gidret)
|
mode_t *attribute, __uid32_t *uidret, __gid32_t *gidret)
|
||||||
{
|
{
|
||||||
if (!wincap.has_security ())
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
PSECURITY_DESCRIPTOR psd = NULL;
|
PSECURITY_DESCRIPTOR psd = NULL;
|
||||||
cygpsid owner_sid;
|
cygpsid owner_sid;
|
||||||
cygpsid group_sid;
|
cygpsid group_sid;
|
||||||
|
@ -1548,7 +1542,7 @@ int
|
||||||
get_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type,
|
get_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type,
|
||||||
mode_t *attribute, __uid32_t *uidret, __gid32_t *gidret)
|
mode_t *attribute, __uid32_t *uidret, __gid32_t *gidret)
|
||||||
{
|
{
|
||||||
if (allow_ntsec)
|
if (allow_ntsec && wincap.has_security ())
|
||||||
{
|
{
|
||||||
int res = get_nt_object_attribute (handle, object_type, attribute,
|
int res = get_nt_object_attribute (handle, object_type, attribute,
|
||||||
uidret, gidret);
|
uidret, gidret);
|
||||||
|
|
Loading…
Reference in New Issue