From: Juanma Barranquero Date: Thu, 29 Mar 2007 13:58:40 +0000 (+0000) Subject: (Fformat_network_address): Return nil when the X-Git-Tag: emacs-pretest-22.0.97~130 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cbf23adbc6e8b103321dd13e56bf98f7de6cd73e;p=emacs.git (Fformat_network_address): Return nil when the argument vector contains invalid values. --- diff --git a/src/ChangeLog b/src/ChangeLog index d1e4995899a..e001f27c9bb 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2007-03-29 Juanma Barranquero + + * process.c (Fformat_network_address): Return nil when the + argument vector contains invalid values. + 2007-03-28 YAMAMOTO Mitsuharu * gmalloc.c [HAVE_GTK_AND_PTHREAD]: Define USE_PTHREAD. 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;