]> sourceware.org Git - newlib-cygwin.git/commitdiff
* syscalls.cc (_read): Validate input pointer.
authorChristopher Faylor <me@cgf.cx>
Fri, 19 Oct 2001 02:27:19 +0000 (02:27 +0000)
committerChristopher Faylor <me@cgf.cx>
Fri, 19 Oct 2001 02:27:19 +0000 (02:27 +0000)
(_write): Ditto.
(system): Ditto.

winsup/cygwin/ChangeLog
winsup/cygwin/syscalls.cc

index 15f55fa2c48a7f4184fe0ff07c127f932bc1eb8e..5a8ed18f4d605810928cd4ecf559100ba9d97c30 100644 (file)
@@ -1,3 +1,9 @@
+2001-10-18  Christopher Faylor  <cgf@redhat.com>
+
+       * syscalls.cc (_read): Validate input pointer.
+       (_write): Ditto.
+       (system): Ditto.
+
 2001-10-16  Frederic Devernay  <Frederic.Devernay@sophia.inria.fr>
 
        * poll.cc (poll): Call cygwin_select() if any fd is valid.
index 3224de358ea46e9791926725d0bc51af496a2078..70d66dd596f435ee20b3cb9ab982e9f154318d28 100644 (file)
@@ -287,6 +287,9 @@ setsid (void)
 extern "C" ssize_t
 _read (int fd, void *ptr, size_t len)
 {
+  if (__check_null_invalid_struct_errno (ptr, len))
+    return -1;
+
   int res;
   extern int sigcatchers;
   int e = get_errno ();
@@ -341,9 +344,12 @@ _read (int fd, void *ptr, size_t len)
 extern "C" ssize_t
 _write (int fd, const void *ptr, size_t len)
 {
+  if (__check_null_invalid_struct_errno (ptr, len))
+    return -1;
+
   int res = -1;
-  sigframe thisframe (mainthread);
 
+  sigframe thisframe (mainthread);
   cygheap_fdget cfd (fd);
   if (cfd < 0)
     goto done;
@@ -1245,6 +1251,9 @@ done:
 extern "C" int
 system (const char *cmdstring)
 {
+  if (check_null_empty_str_errno (cmdstring))
+    return -1;
+
   sigframe thisframe (mainthread);
   int res;
   const char* command[4];
This page took 0.035385 seconds and 5 git commands to generate.