aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
authorJuanma Barranquero <[email protected]>2007-03-29 13:58:40 +0000
committerJuanma Barranquero <[email protected]>2007-03-29 13:58:40 +0000
commitcbf23adbc6e8b103321dd13e56bf98f7de6cd73e (patch)
treed8a508629c350d698f413db8ecef9b4d5755d7d9 /src/process.c
parent7315c8d9498b895ed275fd700679dca233588aef (diff)
(Fformat_network_address): Return nil when the
argument vector contains invalid values.
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/process.c b/src/process.c
index 4f6d2832f8..14535eb6e1 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;