From debbugs-submit-bounces@debbugs.gnu.org Tue May 24 01:32:35 2011 Received: (at submit) by debbugs.gnu.org; 24 May 2011 05:32:35 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QOkEM-0000ai-Uc for submit@debbugs.gnu.org; Tue, 24 May 2011 01:32:35 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QOkEJ-0000aV-G5 for submit@debbugs.gnu.org; Tue, 24 May 2011 01:32:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QOkED-0007B6-3v for submit@debbugs.gnu.org; Tue, 24 May 2011 01:32:26 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:44845) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOkED-0007B2-2O for submit@debbugs.gnu.org; Tue, 24 May 2011 01:32:25 -0400 Received: from eggs.gnu.org ([140.186.70.92]:43442) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOkEB-00020V-Qz for bug-gnu-emacs@gnu.org; Tue, 24 May 2011 01:32:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QOkEA-0007A4-2b for bug-gnu-emacs@gnu.org; Tue, 24 May 2011 01:32:23 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:42625) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOkE9-0007A0-Js for bug-gnu-emacs@gnu.org; Tue, 24 May 2011 01:32:22 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id E8AD139E8113 for ; Mon, 23 May 2011 22:32:20 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 62OZhPzJuDA5 for ; Mon, 23 May 2011 22:32:20 -0700 (PDT) Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id D4DE039E8100 for ; Mon, 23 May 2011 22:32:19 -0700 (PDT) Message-ID: <4DDB42E3.9000106@cs.ucla.edu> Date: Mon, 23 May 2011 22:32:19 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110424 Thunderbird/3.1.10 MIME-Version: 1.0 To: bug-gnu-emacs@gnu.org Subject: dbusbind.c fixes for integer issues, e.g., integer overflow Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -4.7 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.7 (----) I found some integer overflow issues in dbusbind.c and came up with the following patch which I'd like to install. This doesn't fix all the integer overflow problems in dbusbind.c, but it makes some progress anyway. === modified file 'src/ChangeLog' --- src/ChangeLog 2011-05-24 01:20:04 +0000 +++ src/ChangeLog 2011-05-24 05:16:14 +0000 @@ -1,5 +1,23 @@ 2011-05-24 Paul Eggert + * dbusbind.c: Serial number integer overflow fixes. + (CHECK_DBUS_SERIAL_GET_SERIAL): New macro. + (xd_invalid_serial): New static function. + (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float + to hold a serial number that is too large for a fixnum. + (Fdbus_method_return_internal, Fdbus_method_error_internal): + Check for serial numbers out of range. Decode any serial number + that was so large that it became a float. + + * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg. + (Fdbus_call_method, Fdbus_call_method_asynchronously): + Use XFASTINT rather than XUINT when numbers are nonnegative. + (xd_append_arg, Fdbus_method_return_internal): + (Fdbus_method_error_internal): Likewise. Also, for unsigned + arguments, check that Lisp number is nonnegative, rather than + silently wrapping negative numbers around. + (xd_read_message_1): Don't assume dbus_uint32_t can fit in int. + * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT. 2011-05-23 Paul Eggert === modified file 'src/dbusbind.c' --- src/dbusbind.c 2011-05-06 22:12:31 +0000 +++ src/dbusbind.c 2011-05-24 05:16:14 +0000 @@ -242,6 +242,31 @@ #define XD_NEXT_VALUE(object) \ ((XD_DBUS_TYPE_P (CAR_SAFE (object))) ? CDR_SAFE (object) : object) +/* Check whether X is a valid dbus serial number. If valid, set + SERIAL to its value. Otherwise, signal an error. */ +#define CHECK_DBUS_SERIAL_GET_SERIAL(x, serial) \ + do \ + { \ + dbus_uint32_t DBUS_SERIAL_MAX = -1; \ + if (NATNUMP (x) && XINT (x) <= DBUS_SERIAL_MAX) \ + serial = XINT (x); \ + else if (MOST_POSITIVE_FIXNUM < DBUS_SERIAL_MAX \ + && FLOATP (x) \ + && 0 <= XFLOAT_DATA (x) \ + && XFLOAT_DATA (x) <= DBUS_SERIAL_MAX) \ + serial = XFLOAT_DATA (x); \ + else \ + xd_invalid_serial (x); \ + } \ + while (0) + +static void xd_invalid_serial (Lisp_Object) NO_RETURN; +static void +xd_invalid_serial (Lisp_Object x) +{ + signal_error ("Invalid dbus serial", x); +} + /* Compute SIGNATURE of OBJECT. It must have a form that it can be used in dbus_message_iter_open_container. DTYPE is the DBusType the object is related to. It is passed as argument, because it @@ -431,9 +456,9 @@ switch (dtype) { case DBUS_TYPE_BYTE: - CHECK_NUMBER (object); + CHECK_NATNUM (object); { - unsigned char val = XUINT (object) & 0xFF; + unsigned char val = XFASTINT (object) & 0xFF; XD_DEBUG_MESSAGE ("%c %d", dtype, val); if (!dbus_message_iter_append_basic (iter, dtype, &val)) XD_SIGNAL2 (build_string ("Unable to append argument"), object); @@ -460,9 +485,9 @@ } case DBUS_TYPE_UINT16: - CHECK_NUMBER (object); + CHECK_NATNUM (object); { - dbus_uint16_t val = XUINT (object); + dbus_uint16_t val = XFASTINT (object); XD_DEBUG_MESSAGE ("%c %u", dtype, (unsigned int) val); if (!dbus_message_iter_append_basic (iter, dtype, &val)) XD_SIGNAL2 (build_string ("Unable to append argument"), object); @@ -483,9 +508,9 @@ #ifdef DBUS_TYPE_UNIX_FD case DBUS_TYPE_UNIX_FD: #endif - CHECK_NUMBER (object); + CHECK_NATNUM (object); { - dbus_uint32_t val = XUINT (object); + dbus_uint32_t val = XFASTINT (object); XD_DEBUG_MESSAGE ("%c %u", dtype, val); if (!dbus_message_iter_append_basic (iter, dtype, &val)) XD_SIGNAL2 (build_string ("Unable to append argument"), object); @@ -503,10 +528,10 @@ } case DBUS_TYPE_UINT64: - CHECK_NUMBER (object); + CHECK_NATNUM (object); { - dbus_uint64_t val = XUINT (object); - XD_DEBUG_MESSAGE ("%c %"pI"u", dtype, XUINT (object)); + dbus_uint64_t val = XFASTINT (object); + XD_DEBUG_MESSAGE ("%c %"pI"d", dtype, XFASTINT (object)); if (!dbus_message_iter_append_basic (iter, dtype, &val)) XD_SIGNAL2 (build_string ("Unable to append argument"), object); return; @@ -1110,7 +1135,7 @@ if ((i+2 <= nargs) && (EQ ((args[i]), QCdbus_timeout))) { CHECK_NATNUM (args[i+1]); - timeout = XUINT (args[i+1]); + timeout = XFASTINT (args[i+1]); i = i+2; } @@ -1186,7 +1211,7 @@ /* Return the result. If there is only one single Lisp object, return it as-it-is, otherwise return the reversed list. */ - if (XUINT (Flength (result)) == 1) + if (XFASTINT (Flength (result)) == 1) RETURN_UNGCPRO (CAR_SAFE (result)); else RETURN_UNGCPRO (Fnreverse (result)); @@ -1251,6 +1276,7 @@ DBusMessage *dmessage; DBusMessageIter iter; unsigned int dtype; + dbus_uint32_t serial; int timeout = -1; size_t i = 6; char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH]; @@ -1292,7 +1318,7 @@ if ((i+2 <= nargs) && (EQ ((args[i]), QCdbus_timeout))) { CHECK_NATNUM (args[i+1]); - timeout = XUINT (args[i+1]); + timeout = XFASTINT (args[i+1]); i = i+2; } @@ -1335,7 +1361,8 @@ XD_SIGNAL1 (build_string ("Cannot send message")); /* The result is the key in Vdbus_registered_objects_table. */ - result = (list2 (bus, make_number (dbus_message_get_serial (dmessage)))); + serial = dbus_message_get_serial (dmessage); + result = list2 (bus, make_fixnum_or_float (serial)); /* Create a hash table entry. */ Fputhash (result, handler, Vdbus_registered_objects_table); @@ -1368,25 +1395,26 @@ usage: (dbus-method-return-internal BUS SERIAL SERVICE &rest ARGS) */) (size_t nargs, register Lisp_Object *args) { - Lisp_Object bus, serial, service; - struct gcpro gcpro1, gcpro2, gcpro3; + Lisp_Object bus, service; + struct gcpro gcpro1, gcpro2; DBusConnection *connection; DBusMessage *dmessage; DBusMessageIter iter; - unsigned int dtype; + dbus_uint32_t serial; + unsigned int ui_serial, dtype; size_t i; char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH]; /* Check parameters. */ bus = args[0]; - serial = args[1]; service = args[2]; - CHECK_NUMBER (serial); + CHECK_DBUS_SERIAL_GET_SERIAL (args[1], serial); CHECK_STRING (service); - GCPRO3 (bus, serial, service); + GCPRO2 (bus, service); - XD_DEBUG_MESSAGE ("%"pI"u %s ", XUINT (serial), SDATA (service)); + ui_serial = serial; + XD_DEBUG_MESSAGE ("%u %s ", ui_serial, SSDATA (service)); /* Open a connection to the bus. */ connection = xd_initialize (bus, TRUE); @@ -1394,7 +1422,7 @@ /* Create the message. */ dmessage = dbus_message_new (DBUS_MESSAGE_TYPE_METHOD_RETURN); if ((dmessage == NULL) - || (!dbus_message_set_reply_serial (dmessage, XUINT (serial))) + || (!dbus_message_set_reply_serial (dmessage, serial)) || (!dbus_message_set_destination (dmessage, SSDATA (service)))) { UNGCPRO; @@ -1456,25 +1484,26 @@ usage: (dbus-method-error-internal BUS SERIAL SERVICE &rest ARGS) */) (size_t nargs, register Lisp_Object *args) { - Lisp_Object bus, serial, service; - struct gcpro gcpro1, gcpro2, gcpro3; + Lisp_Object bus, service; + struct gcpro gcpro1, gcpro2; DBusConnection *connection; DBusMessage *dmessage; DBusMessageIter iter; - unsigned int dtype; + dbus_uint32_t serial; + unsigned int ui_serial, dtype; size_t i; char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH]; /* Check parameters. */ bus = args[0]; - serial = args[1]; service = args[2]; - CHECK_NUMBER (serial); + CHECK_DBUS_SERIAL_GET_SERIAL (args[1], serial); CHECK_STRING (service); - GCPRO3 (bus, serial, service); + GCPRO2 (bus, service); - XD_DEBUG_MESSAGE ("%"pI"u %s ", XUINT (serial), SDATA (service)); + ui_serial = serial; + XD_DEBUG_MESSAGE ("%u %s ", ui_serial, SSDATA (service)); /* Open a connection to the bus. */ connection = xd_initialize (bus, TRUE); @@ -1483,7 +1512,7 @@ dmessage = dbus_message_new (DBUS_MESSAGE_TYPE_ERROR); if ((dmessage == NULL) || (!dbus_message_set_error_name (dmessage, DBUS_ERROR_FAILED)) - || (!dbus_message_set_reply_serial (dmessage, XUINT (serial))) + || (!dbus_message_set_reply_serial (dmessage, serial)) || (!dbus_message_set_destination (dmessage, SSDATA (service)))) { UNGCPRO; @@ -1663,7 +1692,9 @@ DBusMessage *dmessage; DBusMessageIter iter; unsigned int dtype; - int mtype, serial; + int mtype; + dbus_uint32_t serial; + unsigned int ui_serial; const char *uname, *path, *interface, *member; dmessage = dbus_connection_pop_message (connection); @@ -1692,7 +1723,7 @@ /* Read message type, message serial, unique name, object path, interface and member from the message. */ mtype = dbus_message_get_type (dmessage); - serial = + ui_serial = serial = ((mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN) || (mtype == DBUS_MESSAGE_TYPE_ERROR)) ? dbus_message_get_reply_serial (dmessage) @@ -1702,7 +1733,7 @@ interface = dbus_message_get_interface (dmessage); member = dbus_message_get_member (dmessage); - XD_DEBUG_MESSAGE ("Event received: %s %d %s %s %s %s %s", + XD_DEBUG_MESSAGE ("Event received: %s %u %s %s %s %s %s", (mtype == DBUS_MESSAGE_TYPE_INVALID) ? "DBUS_MESSAGE_TYPE_INVALID" : (mtype == DBUS_MESSAGE_TYPE_METHOD_CALL) @@ -1712,14 +1743,14 @@ : (mtype == DBUS_MESSAGE_TYPE_ERROR) ? "DBUS_MESSAGE_TYPE_ERROR" : "DBUS_MESSAGE_TYPE_SIGNAL", - serial, uname, path, interface, member, + ui_serial, uname, path, interface, member, SDATA (format2 ("%s", args, Qnil))); if ((mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN) || (mtype == DBUS_MESSAGE_TYPE_ERROR)) { /* Search for a registered function of the message. */ - key = list2 (bus, make_number (serial)); + key = list2 (bus, make_fixnum_or_float (serial)); value = Fgethash (key, Vdbus_registered_objects_table, Qnil); /* There shall be exactly one entry. Construct an event. */ @@ -1785,7 +1816,7 @@ event.arg); event.arg = Fcons ((uname == NULL ? Qnil : build_string (uname)), event.arg); - event.arg = Fcons (make_number (serial), event.arg); + event.arg = Fcons (make_fixnum_or_float (serial), event.arg); event.arg = Fcons (make_number (mtype), event.arg); /* Add the bus symbol to the event. */ From debbugs-submit-bounces@debbugs.gnu.org Tue May 24 03:05:08 2011 Received: (at 8722) by debbugs.gnu.org; 24 May 2011 07:05:09 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QOlfv-0002aw-VM for submit@debbugs.gnu.org; Tue, 24 May 2011 03:05:08 -0400 Received: from mailout-de.gmx.net ([213.165.64.22]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1QOlft-0002aT-HU for 8722@debbugs.gnu.org; Tue, 24 May 2011 03:05:06 -0400 Received: (qmail invoked by alias); 24 May 2011 07:04:58 -0000 Received: from p57BB9018.dip0.t-ipconnect.de (EHLO detlef.gmx.de) [87.187.144.24] by mail.gmx.net (mp062) with SMTP; 24 May 2011 09:04:58 +0200 X-Authenticated: #3708877 X-Provags-ID: V01U2FsdGVkX19cU/5HweRcC2heUvvCRXUJa2rn1EB1PejeOklXyG lVMyW5wIUNdIgV From: Michael Albinus To: Paul Eggert Subject: Re: bug#8722: dbusbind.c fixes for integer issues, e.g., integer overflow References: <4DDB42E3.9000106@cs.ucla.edu> Date: Tue, 24 May 2011 09:04:49 +0200 In-Reply-To: <4DDB42E3.9000106@cs.ucla.edu> (Paul Eggert's message of "Mon, 23 May 2011 22:32:19 -0700") Message-ID: <87y61wwpda.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Y-GMX-Trusted: 0 X-Spam-Score: -2.7 (--) X-Debbugs-Envelope-To: 8722 Cc: 8722@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.7 (--) Paul Eggert writes: > I found some integer overflow issues in dbusbind.c and came up > with the following patch which I'd like to install. This doesn't > fix all the integer overflow problems in dbusbind.c, but it makes > some progress anyway. On a raw look, it seems to be OK. Minor remark: Why do you need xd_invalid_serial? You could call instead XD_SIGNAL2 (build_string ("Invalid dbus serial"), x); which returns a `dbus-error', and which is more sensible when reading DBus events. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue May 24 03:42:34 2011 Received: (at 8722) by debbugs.gnu.org; 24 May 2011 07:42:34 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QOmGA-0003Nd-E9 for submit@debbugs.gnu.org; Tue, 24 May 2011 03:42:34 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QOmG8-0003NR-Vf for 8722@debbugs.gnu.org; Tue, 24 May 2011 03:42:33 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 0663C39E810E; Tue, 24 May 2011 00:42:27 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZXsHYBiQ6KZH; Tue, 24 May 2011 00:42:26 -0700 (PDT) Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 9F1CB39E80F2; Tue, 24 May 2011 00:42:26 -0700 (PDT) Message-ID: <4DDB615E.9030709@cs.ucla.edu> Date: Tue, 24 May 2011 00:42:22 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110424 Thunderbird/3.1.10 MIME-Version: 1.0 To: Michael Albinus Subject: Re: bug#8722: dbusbind.c fixes for integer issues, e.g., integer overflow References: <4DDB42E3.9000106@cs.ucla.edu> <87y61wwpda.fsf@gmx.de> In-Reply-To: <87y61wwpda.fsf@gmx.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 8722 Cc: 8722@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.0 (---) On 05/24/11 00:04, Michael Albinus wrote: > Why do you need xd_invalid_serial? You could call instead > > XD_SIGNAL2 (build_string ("Invalid dbus serial"), x); Thanks, I didn't think of that. I'll make that change. From debbugs-submit-bounces@debbugs.gnu.org Fri May 27 16:40:20 2011 Received: (at 8722-done) by debbugs.gnu.org; 27 May 2011 20:40:20 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QQ3pT-0001Jy-OB for submit@debbugs.gnu.org; Fri, 27 May 2011 16:40:19 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QQ3pR-0001JT-1F; Fri, 27 May 2011 16:40:18 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 142F439E8100; Fri, 27 May 2011 13:40:11 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rWMrgiN8Oycy; Fri, 27 May 2011 13:40:10 -0700 (PDT) Received: from [131.179.64.200] (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id BA82039E80F0; Fri, 27 May 2011 13:40:10 -0700 (PDT) Message-ID: <4DE00C2A.4030909@cs.ucla.edu> Date: Fri, 27 May 2011 13:40:10 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Thunderbird/3.1.10 MIME-Version: 1.0 To: 8722-done@debbugs.gnu.org, 8719-done@debbugs.gnu.org, 8668-done@debbugs.gnu.org Subject: fixes committed to trunk Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Score: -3.2 (---) X-Debbugs-Envelope-To: 8722-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.2 (---) I just committed bzr 104390 to the Emacs trunk. It merges fixes for bugs 8668, 8719, and 8722 as previously discussed. For Bug#8719, although the patch should fix the problems it may not be the best patch. Kenichi Handa wrote that he'll check it. Kenichi, if there are problems with it, please feel free to replace it with something better or to send me email with suggestions and I'll work on making it better. Thanks. From unknown Sat Aug 16 19:20:58 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 25 Jun 2011 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator