Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2003-09-27 09:44:58 +0400
committerChristopher Faylor <me@cgf.cx>2003-09-27 09:44:58 +0400
commit341d29542235fd18b184b5bffb02d06e3b1e0fab (patch)
tree35a955443dae96df1145f8dcefdbb5751fbe4868 /winsup/cygwin
parent4cb3e57917e23f1d0f616170083213b4b118bc1d (diff)
* path.cc (symlink_info::check): Use new introducer for mknod'ed files.
(parse_device): Ditto. * syscalls.cc (mknod_worker): Ditto.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/path.cc4
-rw-r--r--winsup/cygwin/syscalls.cc4
3 files changed, 10 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 17fb66334..6f09fbd08 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,11 @@
2003-09-27 Christopher Faylor <cgf@redhat.com>
+ * path.cc (symlink_info::check): Use new introducer for mknod'ed files.
+ (parse_device): Ditto.
+ * syscalls.cc (mknod_worker): Ditto.
+
+2003-09-27 Christopher Faylor <cgf@redhat.com>
+
* devices.shilka: Add /dev/sda disk devices.
* devices.cc: Regenerate.
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index d1e31ad9c..241660885 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -2880,7 +2880,7 @@ symlink_info::parse_device (const char *contents)
_major_t myminor;
_mode_t mymode;
- mymajor = strtol (++contents, &endptr, 16);
+ mymajor = strtol (contents += 2, &endptr, 16);
if (endptr == contents)
return false;
@@ -3016,7 +3016,7 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt)
res = check_shortcut (suffix.path, fileattr, h, contents, &error, &pflags);
if (!res)
/* check more below */;
- else if (*contents == ':' && parse_device (contents))
+ else if (contents[0] == ':' && contents[1] == '\\' && parse_device (contents))
goto file_not_symlink;
else
break;
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 51ce08e2f..8c53af20e 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -2033,8 +2033,8 @@ static int __stdcall
mknod_worker (const char *path, mode_t type, mode_t mode, _major_t major,
_minor_t minor)
{
- char buf[sizeof (":00000000:00000000:00000000") + MAX_PATH];
- sprintf (buf, ":%x:%x:%x", major, minor,
+ char buf[sizeof (":\\00000000:00000000:00000000") + MAX_PATH];
+ sprintf (buf, ":\\%x:%x:%x", major, minor,
type | (mode & (S_IRWXU | S_IRWXG | S_IRWXO)));
return symlink_worker (buf, path, true, true);
}