]> git.eshelyaron.com Git - emacs.git/commitdiff
Add assertion to guard 'read' calls on MS-Windows
authorEli Zaretskii <eliz@gnu.org>
Tue, 20 Feb 2018 03:58:58 +0000 (05:58 +0200)
committerEli Zaretskii <eliz@gnu.org>
Tue, 20 Feb 2018 03:58:58 +0000 (05:58 +0200)
* src/sysdep.c (emacs_intr_read): Assert that NBYTES never
overflows a 32-bit int.

src/sysdep.c

index bc34d8dc059585f4f035dc4e91d20ea9970bbb8e..08db376b261948e7cd4b9256a370721349398035 100644 (file)
@@ -2566,6 +2566,14 @@ emacs_intr_read (int fd, void *buf, ptrdiff_t nbyte, bool interruptible)
 
   /* There is no need to check against MAX_RW_COUNT, since no caller ever
      passes a size that large to emacs_read.  */
+#ifdef WINDOWSNT
+  /* On MS-Windows, 'read's last argument is declared as 'unsigned
+     int', and the return value's type (see 'sys_read') is 'int'.
+     This might cause trouble, especially in 64-bit builds, if the
+     above comment ever becomes incorrect.  The following assertion
+     should make us more future-proof.  */
+  eassert (nbyte <= INT_MAX);
+#endif
   do
     {
       if (interruptible)