aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2018-02-20 05:58:58 +0200
committerEli Zaretskii2018-02-20 05:58:58 +0200
commit3d42272754db914d4f2dbbcfba5ce6776a7b232b (patch)
tree70d74f9adfbf9614c1f66f07c0c7f66ecfbe5991
parent071a0a571243f9498e0e58e5fe938a7b892a22db (diff)
downloademacs-3d42272754db914d4f2dbbcfba5ce6776a7b232b.tar.gz
emacs-3d42272754db914d4f2dbbcfba5ce6776a7b232b.zip
Add assertion to guard 'read' calls on MS-Windows
* src/sysdep.c (emacs_intr_read): Assert that NBYTES never overflows a 32-bit int.
-rw-r--r--src/sysdep.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/sysdep.c b/src/sysdep.c
index bc34d8dc059..08db376b261 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -2566,6 +2566,14 @@ emacs_intr_read (int fd, void *buf, ptrdiff_t nbyte, bool interruptible)
2566 2566
2567 /* There is no need to check against MAX_RW_COUNT, since no caller ever 2567 /* There is no need to check against MAX_RW_COUNT, since no caller ever
2568 passes a size that large to emacs_read. */ 2568 passes a size that large to emacs_read. */
2569#ifdef WINDOWSNT
2570 /* On MS-Windows, 'read's last argument is declared as 'unsigned
2571 int', and the return value's type (see 'sys_read') is 'int'.
2572 This might cause trouble, especially in 64-bit builds, if the
2573 above comment ever becomes incorrect. The following assertion
2574 should make us more future-proof. */
2575 eassert (nbyte <= INT_MAX);
2576#endif
2569 do 2577 do
2570 { 2578 {
2571 if (interruptible) 2579 if (interruptible)