[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r117249: If ENABLE_CHECKING, range-check args of FD_
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] trunk r117249: If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET. |
Date: |
Tue, 03 Jun 2014 16:15:49 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 117249
revision-id: address@hidden
parent: address@hidden
author: Paul Eggert <address@hidden>
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Tue 2014-06-03 09:15:43 -0700
message:
If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET.
* process.c (add_read_fd, delete_read_fd, add_write_fd)
(delete_write_fd, wait_reading_process_output):
Remove now-redundant easserts.
* sysselect.h (SYSSELECT_H): New macro, to avoid double-inclusion woes.
Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
(fd_CLR, fd_ISSET, fd_SET): New inline functions.
(FD_CLR, FD_ISSET, FD_SET): Redefine in terms of these functions.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/process.c process.c-20091113204419-o5vbwnq5f7feedwu-462
src/sysselect.h sysselect.h-20091113204419-o5vbwnq5f7feedwu-826
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2014-06-03 10:01:08 +0000
+++ b/src/ChangeLog 2014-06-03 16:15:43 +0000
@@ -1,3 +1,14 @@
+2014-06-03 Paul Eggert <address@hidden>
+
+ If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET.
+ * process.c (add_read_fd, delete_read_fd, add_write_fd)
+ (delete_write_fd, wait_reading_process_output):
+ Remove now-redundant easserts.
+ * sysselect.h (SYSSELECT_H): New macro, to avoid double-inclusion woes.
+ Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
+ (fd_CLR, fd_ISSET, fd_SET): New inline functions.
+ (FD_CLR, FD_ISSET, FD_SET): Redefine in terms of these functions.
+
2014-06-03 Eli Zaretskii <address@hidden>
* w32heap.c (DUMPED_HEAP_SIZE): Move from w32heap.h. Don't use
=== modified file 'src/process.c'
--- a/src/process.c 2014-06-03 00:44:30 +0000
+++ b/src/process.c 2014-06-03 16:15:43 +0000
@@ -468,7 +468,6 @@
void
add_read_fd (int fd, fd_callback func, void *data)
{
- eassert (fd < FD_SETSIZE);
add_keyboard_wait_descriptor (fd);
fd_callback_info[fd].func = func;
@@ -481,7 +480,6 @@
void
delete_read_fd (int fd)
{
- eassert (fd < FD_SETSIZE);
delete_keyboard_wait_descriptor (fd);
fd_callback_info[fd].condition &= ~FOR_READ;
@@ -498,7 +496,6 @@
void
add_write_fd (int fd, fd_callback func, void *data)
{
- eassert (fd < FD_SETSIZE);
FD_SET (fd, &write_mask);
if (fd > max_input_desc)
max_input_desc = fd;
@@ -529,7 +526,6 @@
void
delete_write_fd (int fd)
{
- eassert (fd < FD_SETSIZE);
FD_CLR (fd, &write_mask);
fd_callback_info[fd].condition &= ~FOR_WRITE;
if (fd_callback_info[fd].condition == 0)
@@ -4652,8 +4648,6 @@
> 0))
{
nfds = 1;
- eassert (0 <= wait_proc->infd
- && wait_proc->infd < FD_SETSIZE);
/* Set to Available. */
FD_SET (wait_proc->infd, &Available);
}
=== modified file 'src/sysselect.h'
--- a/src/sysselect.h 2014-01-01 07:43:34 +0000
+++ b/src/sysselect.h 2014-06-03 16:15:43 +0000
@@ -16,6 +16,9 @@
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef SYSSELECT_H
+#define SYSSELECT_H 1
+
#ifndef DOS_NT
#include <sys/select.h>
#endif
@@ -47,3 +50,39 @@
#ifdef MSDOS
#define pselect sys_select
#endif
+
+INLINE_HEADER_BEGIN
+
+/* Check for out-of-range errors if ENABLE_CHECKING is defined. */
+
+INLINE void
+fd_CLR (int fd, fd_set *set)
+{
+ eassume (0 <= fd && fd < FD_SETSIZE);
+ FD_CLR (fd, set);
+}
+
+INLINE bool
+fd_ISSET (int fd, fd_set *set)
+{
+ eassume (0 <= fd && fd < FD_SETSIZE);
+ return FD_ISSET (fd, set) != 0;
+}
+
+INLINE void
+fd_SET (int fd, fd_set *set)
+{
+ eassume (0 <= fd && fd < FD_SETSIZE);
+ FD_SET (fd, set);
+}
+
+#undef FD_CLR
+#undef FD_ISSET
+#undef FD_SET
+#define FD_CLR(fd, set) fd_CLR (fd, set)
+#define FD_ISSET(fd, set) fd_ISSET (fd, set)
+#define FD_SET(fd, set) fd_SET (fd, set)
+
+INLINE_HEADER_END
+
+#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r117249: If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET.,
Paul Eggert <=