]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fformat_network_address): Return nil when the
authorJuanma Barranquero <lekktu@gmail.com>
Thu, 29 Mar 2007 13:58:40 +0000 (13:58 +0000)
committerJuanma Barranquero <lekktu@gmail.com>
Thu, 29 Mar 2007 13:58:40 +0000 (13:58 +0000)
argument vector contains invalid values.

src/ChangeLog
src/process.c

index d1e4995899a5a304b0283b52a8e4cd0067febc86..e001f27c9bb65f61d4f9e638b8cfada3a0160551 100644 (file)
@@ -1,3 +1,8 @@
+2007-03-29  Juanma Barranquero  <lekktu@gmail.com>
+
+       * process.c (Fformat_network_address): Return nil when the
+       argument vector contains invalid values.
+
 2007-03-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
        * gmalloc.c [HAVE_GTK_AND_PTHREAD]: Define USE_PTHREAD.
index 4f6d2832f8d02e67ce6c88b2650df30c359c1f08..14535eb6e1efb776f1a13911bb4427f2faca165d 100644 (file)
@@ -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;