diff options
author | Juanma Barranquero <lekktu@gmail.com> | 2007-03-29 13:58:40 +0000 |
---|---|---|
committer | Juanma Barranquero <lekktu@gmail.com> | 2007-03-29 13:58:40 +0000 |
commit | cbf23adbc6e8b103321dd13e56bf98f7de6cd73e (patch) | |
tree | d8a508629c350d698f413db8ecef9b4d5755d7d9 /src/process.c | |
parent | 7315c8d9498b895ed275fd700679dca233588aef (diff) | |
download | emacs-cbf23adbc6e8b103321dd13e56bf98f7de6cd73e.tar.gz |
(Fformat_network_address): Return nil when the
argument vector contains invalid values.
Diffstat (limited to 'src/process.c')
-rw-r--r-- | src/process.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/process.c b/src/process.c index 4f6d2832f8d..14535eb6e1e 100644 --- a/src/process.c +++ b/src/process.c @@ -1295,7 +1295,20 @@ Returns nil if format of ADDRESS is invalid. */) return Qnil; for (i = 0; i < nargs; i++) - args[i+1] = p->contents[i]; + { + EMACS_INT element = XINT (p->contents[i]); + + if (element < 0 || element > 65535) + return Qnil; + + if (nargs <= 5 /* IPv4 */ + && i < 4 /* host, not port */ + && element > 255) + return Qnil; + + args[i+1] = p->contents[i]; + } + return Fformat (nargs+1, args); } @@ -1410,7 +1423,6 @@ list_processes_1 (query_only) if (CONSP (p->status)) symbol = XCAR (p->status); - if (EQ (symbol, Qsignal)) { Lisp_Object tem; |