summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Colascione <dancol@dancol.org>2014-03-22 23:05:54 -0700
committerDaniel Colascione <dancol@dancol.org>2014-03-22 23:05:54 -0700
commite611af505f8d411c5f11c012eaaafeb28cabe0c4 (patch)
treec314e0e9bbb74c7ab743e0ea5cded23ca51b3f28
parent7eab98da1b67fb50195cfd0bfa20ddca75e67465 (diff)
downloademacs-e611af505f8d411c5f11c012eaaafeb28cabe0c4.tar.gz
Backport memory fix (2014-03-23T05:15:48Z!dancol@dancol.org) from trunk
-rw-r--r--src/ChangeLog5
-rw-r--r--src/process.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index dbfb1436fe1..48fc2262e92 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-23 Daniel Colascione <dancol@dancol.org>
+
+ * process.c (DATAGRAM_CONN_P): Don't underflow datagram_address
+ array. (ASAN caught.)
+
2014-03-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Fix regression introduced by patch for Bug#10500.
diff --git a/src/process.c b/src/process.c
index 187627dd85a..6f89408b5ee 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)