* serial.c (write_serial): Avoid infinite loops, see #375580.
svn path=/trunk/mono/; revision=99480
+2008-03-31 Miguel de Icaza <miguel@novell.com>
+
+ * serial.c (write_serial): Avoid infinite loops, see #375580.
+
2008-02-12 Jonathan Pryor <jpryor@novell.com>
* signal.c: SLES9 has glib 2.2, so we can't rely on g_atomic_int_*().
fd_set writefs;
guint32 n;
- n = count - offset;
+ n = count;
FD_SET(fd, &writefs);
tmval.tv_sec = timeout / 1000;
}
}
- t = write(fd, buffer + offset, count);
+ do {
+ t = write (fd, buffer + offset, n);
+ } while (t == -1 && errno == EINTR);
+
+ if (t < 0)
+ return -1;
if (timeout > 0)
{
{
return -1;
}
- }
+ }
offset += t;
n -= t;