From: Daniel Colascione Date: Sun, 23 Mar 2014 05:15:48 +0000 (-0700) Subject: Don't underflow datagram_address array X-Git-Tag: emacs-25.0.90~2640^2~344^2~8 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3768a86998e3da26c091b138e86a0e2c80e82644;p=emacs.git Don't underflow datagram_address array --- diff --git a/src/ChangeLog b/src/ChangeLog index efb96ce8494..36964f57437 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-03-23 Daniel Colascione + + * process.c (DATAGRAM_CONN_P): Don't underflow datagram_address + array. (ASAN caught.) + 2014-03-22 Glenn Morris * callproc.c (init_callproc): In etc, look for NEWS rather than GNU. diff --git a/src/process.c b/src/process.c index 10a2984a053..fd34eb08d9d 100644 --- a/src/process.c +++ b/src/process.c @@ -353,7 +353,10 @@ static struct sockaddr_and_len { int len; } datagram_address[FD_SETSIZE]; #define DATAGRAM_CHAN_P(chan) (datagram_address[chan].sa != 0) -#define DATAGRAM_CONN_P(proc) (PROCESSP (proc) && datagram_address[XPROCESS (proc)->infd].sa != 0) +#define DATAGRAM_CONN_P(proc) \ + (PROCESSP (proc) && \ + XPROCESS (proc)->infd >= 0 && \ + datagram_address[XPROCESS (proc)->infd].sa != 0) #else #define DATAGRAM_CHAN_P(chan) (0) #define DATAGRAM_CONN_P(proc) (0)