From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:8:6d80::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id cNScAHZjgWBCGgEAgWs5BA (envelope-from ) for ; Thu, 22 Apr 2021 13:52:22 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id YAvkN3VjgWD6CwAAB5/wlQ (envelope-from ) for ; Thu, 22 Apr 2021 11:52:21 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 3DC2D16237 for ; Thu, 22 Apr 2021 13:52:21 +0200 (CEST) Received: from localhost ([::1]:41766 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lZXsZ-0005I5-I8 for larch@yhetil.org; Thu, 22 Apr 2021 07:52:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43888) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZXro-0005G1-JZ for guix-devel@gnu.org; Thu, 22 Apr 2021 07:51:32 -0400 Received: from mail-oln040092255048.outbound.protection.outlook.com ([40.92.255.48]:64320 helo=APC01-HK2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZXrl-0008QY-51 for guix-devel@gnu.org; Thu, 22 Apr 2021 07:51:32 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lu0Ss69o/kiE1wJPPhcUKap0kAGh2CzthZUZVFfjLf0lR/YDoJN8HYaPO1iZh3BnbGXmXRkJGCmWDXLqD3pOWgHjCc5ACw4sspuUjtrX33BE1cAhN9ESN35nFR4ULJxiqxSFRv6ylAwcuKuLzvFsFRrPgKFs8mHgI0h4AlqACFqtBF+Xu9AjTzn/YLZxSPYVSAjUMmW1c3dpaKfjVDTwZP0ooA0bXuCf+8ha8hQ894WRYzQVXBQd4SYtnxsdd/NMirvraWoDVYeZD6GCWPEmam7EFExBCYdxn5rEyJUb6+/fEm2vmCIUJyvD6zoR+fdwNfciZerryglezjsr31XjJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hFpav6x9hS2Q+y3mO4p3AEM2kQiRgcYKIzWd03qxrtk=; b=P6QnMVSSmK69sV++R6eEn0sVdIWnglomczfNooINyJLAlxfupV8n0NOgPUgEbHUY8wO2ajTvGAUYd2QAlwfe1qUvKees/vUeF6INyVCfo9reFMaBJ+zN0AULHSUAq6UxkqBk5ZikzVLMyIFwrtQXkprYW2Fu1bbwwULGFQxR/0jKHXJmiIjLUouai757MvC1fW7N0CaUuMs0ory7C5AiIlB3qdZl7YyafX0AnlGM82mWb8FTSsPI2zrV5jcFDLWkckBP3qPpXylru9HIuAjQ3QkCsfEYOoOWgjtyyJ3VOe3A2Rng8TATSc7d6qSGdpLgwSI/FEA2C5vBgR1j3qY1Bw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hFpav6x9hS2Q+y3mO4p3AEM2kQiRgcYKIzWd03qxrtk=; b=gomBhqNGbhUDGuQ73fo5TvrPfpuJTyiUF7ZmQvGsxFDrw/SRbOMgCzdGjalHpxEseD+GNuFsSPqHE8jWvqLbRW15gTqAgbF1q+alUcRAnE8Z3Dvkd4RGqubbGnWK/lmuzPQ54WgPgis1fS2/NzTZa3KcJsLKBFUMubA7rNp4iSqo9X9DCQ6IbmxUBcmJzNUU2flpcBxv75a8+36l63WHv8Yu37o20Q5Iql6HSadx9ajuxOr3L5qiDav5WzXrGkfI4BXFEqhvlQXEqaUKRNmQD70q2PDM0BbZ0ax6JkY2RVdS+V8ZAnTS+vpvzccw9Kg7XexfJDYo/Wzd8sDUJqUyFg== Received: from SG2PR06CA0243.apcprd06.prod.outlook.com (2603:1096:4:ac::27) by TY2PR0101MB2399.apcprd01.prod.exchangelabs.com (2603:1096:404:57::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.19; Thu, 22 Apr 2021 11:36:16 +0000 Received: from SG2APC01FT052.eop-APC01.prod.protection.outlook.com (2603:1096:4:ac:cafe::e9) by SG2PR06CA0243.outlook.office365.com (2603:1096:4:ac::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Thu, 22 Apr 2021 11:36:16 +0000 Received: from OSZP286MB0664.JPNP286.PROD.OUTLOOK.COM (10.152.250.54) by SG2APC01FT052.mail.protection.outlook.com (10.152.251.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Thu, 22 Apr 2021 11:36:16 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:864B6DCCD9716D15FE678471A5D39AC74643516E2EFC3392FF196E936C04B1C8; UpperCasedChecksum:691CB200F08B430906E48D7F360085908AD9402A3F6E04EC07E21D424569AFE9; SizeAsReceived:8903; Count:46 Received: from OSZP286MB0664.JPNP286.PROD.OUTLOOK.COM ([fe80::3077:ff28:1097:42cd]) by OSZP286MB0664.JPNP286.PROD.OUTLOOK.COM ([fe80::3077:ff28:1097:42cd%6]) with mapi id 15.20.4065.022; Thu, 22 Apr 2021 11:36:15 +0000 From: =?utf-8?B?5a6L5paH5q2m?= To: Mark H Weaver Subject: Re: A "cosmetic changes" commit that removes security fixes References: <87tunz11mf.fsf@netris.org> <87r1j30xmo.fsf@netris.org> Date: Thu, 22 Apr 2021 19:39:22 +0800 In-Reply-To: <87r1j30xmo.fsf@netris.org> (Mark H. Weaver's message of "Thu, 22 Apr 2021 00:08:04 -0400") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) Content-Type: multipart/mixed; boundary="=-=-=" X-TMN: [m0SpzYWDZdvDRulzIXbdikly5HmgbtHL8pB/3Vpuk9phnTHfGTOVLEHEyYUlxAVL] X-ClientProxiedBy: HK2PR0401CA0011.apcprd04.prod.outlook.com (2603:1096:202:2::21) To OSZP286MB0664.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:ec::11) X-Microsoft-Original-Message-ID: <87v98esg45.fsf@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost (2409:8a62:372:7350:2f1:f5ff:fe18:6bb) by HK2PR0401CA0011.apcprd04.prod.outlook.com (2603:1096:202:2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Thu, 22 Apr 2021 11:36:14 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: fde864d7-f502-4bdd-26cd-08d90582d64b X-MS-TrafficTypeDiagnostic: TY2PR0101MB2399: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1CNtaNOY5Fas95PIKddRylacgnTfV+QcWz68f2k1qtDmZp7lwqUyQE6U4W54kHmOkkxvv3JmWeRcYMyDAF2J364kW5FeKzpMOOKofh7/CUOU0M+YpzgVbaDbZ8vv52Jt1jMGorhOAK/t2nZ7AyxeOgxpyVCpBDIUEpIIQ/2CnnnJktvbPvvosSH6J0TX7hjiP57jmIuYfW4uE09EY7WT4Y8VjrCXeFeFxhP4Dw7T6Z/pI0sCbMRed03VscMKdOiHzti0pxbektdrfR4/quNVSgopbi2sKmIYQvbDzLRQ1xqxjlag1MSPVPOhcdmQ7W+MXZM8VlKGaY0/jbWEQRylNvmxOqb58EEfUpE58oucPLN9xfs6su79R+U8gCyAw147C96rjzw7MOL/4dKGuFF56g== X-MS-Exchange-AntiSpam-MessageData: 6h6PR5F2EjHjGG1hAjhtT5FY7hARTBmEBiRzSHmA6WGA+Tfa+MTLAlN1fzwRVlh31bIWlhhI6YSU/4b6KJXUgzzlb3anCYLnbzxPBR5lDasZlD/xq2f9KrL8W+ETIeOgKZvjrou3vH1gjKzS46UzW7zAhkRdzgu1p2WtvOgeZLXyeSApePqBG2NDip76FqZjriYjnsOyZjdjdNJLEwag4Q== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fde864d7-f502-4bdd-26cd-08d90582d64b X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2021 11:36:15.2735 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: SG2APC01FT052.eop-APC01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR0101MB2399 Received-SPF: pass client-ip=40.92.255.48; envelope-from=iyzsong@outlook.com; helo=APC01-HK2-obe.outbound.protection.outlook.com X-Spam_score_int: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_VALIDITY_RPBL=1.31, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Guix Devel , Raghav Gururajan , Leo Prikler Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1619092341; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=hFpav6x9hS2Q+y3mO4p3AEM2kQiRgcYKIzWd03qxrtk=; b=Ch2x+NW0dSo9HPR++fZ6IJoWdlpgVcK6UUz2OvSr7wfm4Io6Fh03JS09rsapxx37hOpRKF ayVVAwoX0p6q6NEwv9iOvDseNqhGR3AcwMKssCw1o1mUDxOS1aSe875FEA7QYr1bggcRG9 6VdpmzgEtCrg9iVNfw/Yifu9Dx31nE1TxTRYT0+sI2coNliokLtNf2MbsPRinU/UuxN39R ZIL9SrfWhjF2CvGgmkSxEZ9DZaYWiHxrMpmZA304ODNTz9Nm8fqA1bwgGGxyyrWJMtLHgw V56BOon7Xt5z0tPIR18u5nj5eWuCOJDzAB0kxN9vihrdJ5sehKyjm57GT0GOPA== ARC-Seal: i=2; s=key1; d=yhetil.org; t=1619092341; a=rsa-sha256; cv=pass; b=W3ct4SVUm2V86L/DiAIyYUhcS+kguZvNEpv5QQ9QFGcE0NfeQ92LsugdWW0f0/h0H2EjDq HsSAjQYdgV7pNDfADCrCpxsLryHRu3j9gQRTwa/KEiRQUfOIZpG/z8Tcr5VhxytrDSOLb9 06B630IfAXdA1BIxfCCYmCWx/AKFtc10MlyfuLod0JrzwplSxGARae5myqo9yyOat4CGDd 4oc3w97oKkHDoBdt8oP4YCkXXcQzBAFeQRatQLTX9YeslBymjbQsu2uzAcGRbfxebzxZ/S W5EExFcU6zHADr7sqxuMOk9V2z9n7iBQ3D1hn9iyIOaTg0aFLkGcsDB8fA6Ebw== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=outlook.com header.s=selector1 header.b=gomBhqNG; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=outlook.com; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -4.14 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=outlook.com header.s=selector1 header.b=gomBhqNG; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=outlook.com; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 3DC2D16237 X-Spam-Score: -4.14 X-Migadu-Scanner: scn0.migadu.com X-TUID: k4zZT1P5heSo --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mark H Weaver writes: > Hi Raghav, > > Raghav Gururajan writes: > >>> Those commits on 'core-updates' were digitally signed by L=C3=A9o Le Bo= uter >>> and have the same problems: they remove security >>> fixes, and yet the summary lines indicate that only "cosmetic changes" >>> were made. >> >> Yeah, the commit title didn't mention the change but the commit message = did. > > I'm sorry, but that won't do. There are at least three things wrong > with these commits: > > (1) The summary lines were misleading, because they implied that no > functional changes were made. Yes, if the title can't summary the change, then the change should be splited into multiple commits. > > (2) The commit messages were misleading, because they failed to mention > that security holes which had previously been fixed were now being > re-introduced. That wasn't at all obvious. > > Commits like these, which remove patches that had fixed security > flaws, are fairly common: someone casually looking over the commit > log might assume that the patches could be safely removed because a > version update was done at the same time, rendering those patches > obsolete. Agree, I think we should mention explicitly that those patches are now not needed after some code audit. > > (3) Although your 'glib' commit was immediately followed by a 'glib' > update, rendering it harmless, your misleading 'cairo' commit left > 'cairo' vulnerable to CVE-2018-19876 and CVE-2020-35492 on our > 'core-updates' and 'wip-gnome' branches. Those will need to be > fixed now. This patch is for core-updates: --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-gnu-cairo-Reintroduce-security-patches-security-fixe.patch >From 15e28e84eaea8f68b6247ab53052f0dd50a544b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Thu, 22 Apr 2021 19:21:51 +0800 Subject: [PATCH] gnu: cairo: Reintroduce security patches [security fixes]. Two patches were accidentally removed in commit f94cdc86f644984ca83164d40b17e7eed6e22091. * gnu/packages/patches/cairo-CVE-2018-19876.patch, gnu/packages/patches/cairo-CVE-2020-35492.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/gtk.scm (cairo)[patches]: Apply them. --- gnu/local.mk | 2 + gnu/packages/gtk.scm | 5 +- .../patches/cairo-CVE-2018-19876.patch | 37 ++++++++++++++ .../patches/cairo-CVE-2020-35492.patch | 49 +++++++++++++++++++ 4 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/cairo-CVE-2018-19876.patch create mode 100644 gnu/packages/patches/cairo-CVE-2020-35492.patch diff --git a/gnu/local.mk b/gnu/local.mk index a8dd66f34a..39b2b72a42 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -880,6 +880,8 @@ dist_patch_DATA = \ %D%/packages/patches/bpftrace-disable-bfd-disasm.patch \ %D%/packages/patches/busybox-CVE-2021-28831.patch \ %D%/packages/patches/byobu-writable-status.patch \ + %D%/packages/patches/cairo-CVE-2018-19876.patch \ + %D%/packages/patches/cairo-CVE-2020-35492.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-remove-test-sqlite.patch \ %D%/packages/patches/calibre-remove-test-unrar.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 9f3aea4aca..f70e667115 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -142,7 +142,10 @@ tools have full access to view and control running applications.") (string-append "https://cairographics.org/releases/cairo-" version ".tar.xz")) (sha256 - (base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy")))) + (base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy")) + (patches (search-patches + "cairo-CVE-2018-19876.patch" + "cairo-CVE-2020-35492.patch")))) (build-system glib-or-gtk-build-system) (outputs '("out" "doc")) (arguments diff --git a/gnu/packages/patches/cairo-CVE-2018-19876.patch b/gnu/packages/patches/cairo-CVE-2018-19876.patch new file mode 100644 index 0000000000..c0fba2ecaa --- /dev/null +++ b/gnu/packages/patches/cairo-CVE-2018-19876.patch @@ -0,0 +1,37 @@ +Copied from Debian. + +From: Carlos Garcia Campos +Date: Mon, 19 Nov 2018 12:33:07 +0100 +Subject: ft: Use FT_Done_MM_Var instead of free when available in + cairo_ft_apply_variations + +Fixes a crash when using freetype >= 2.9 + +[This is considered to be security-sensitive because WebKitGTK+ sets its +own memory allocator, which is not compatible with system free(), making +this a remotely triggerable denial of service or memory corruption.] + +Origin: upstream, commit:90e85c2493fdfa3551f202ff10282463f1e36645 +Bug: https://gitlab.freedesktop.org/cairo/cairo/merge_requests/5 +Bug-Debian: https://bugs.debian.org/916389 +Bug-CVE: CVE-2018-19876 +--- + src/cairo-ft-font.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c +index 325dd61..981973f 100644 +--- a/src/cairo-ft-font.c ++++ b/src/cairo-ft-font.c +@@ -2393,7 +2393,11 @@ skip: + done: + free (coords); + free (current_coords); ++#if HAVE_FT_DONE_MM_VAR ++ FT_Done_MM_Var (face->glyph->library, ft_mm_var); ++#else + free (ft_mm_var); ++#endif + } + } + diff --git a/gnu/packages/patches/cairo-CVE-2020-35492.patch b/gnu/packages/patches/cairo-CVE-2020-35492.patch new file mode 100644 index 0000000000..e8b90fa5c5 --- /dev/null +++ b/gnu/packages/patches/cairo-CVE-2020-35492.patch @@ -0,0 +1,49 @@ +Copied from Debian. + +From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001 +From: Heiko Lewin +Date: Tue, 15 Dec 2020 16:48:19 +0100 +Subject: [PATCH] Fix mask usage in image-compositor + +[trimmed test case, since not used in Debian build] + +--- + src/cairo-image-compositor.c | 8 ++-- + +--- cairo-1.16.0.orig/src/cairo-image-compositor.c ++++ cairo-1.16.0/src/cairo-image-compositor.c +@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_rende + unsigned num_spans) + { + cairo_image_span_renderer_t *r = abstract_renderer; +- uint8_t *m; ++ uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask); + int x0; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + x0 = spans[0].x; +- m = r->_buf; ++ m = base; + do { + int len = spans[1].x - spans[0].x; + if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) { +@@ -2646,7 +2646,7 @@ _inplace_src_spans (void *abstract_rende + spans[0].x, y, + spans[1].x - spans[0].x, h); + +- m = r->_buf; ++ m = base; + x0 = spans[1].x; + } else if (spans[0].coverage == 0x0) { + if (spans[0].x != x0) { +@@ -2675,7 +2675,7 @@ _inplace_src_spans (void *abstract_rende + #endif + } + +- m = r->_buf; ++ m = base; + x0 = spans[1].x; + } else { + *m++ = spans[0].coverage; -- 2.30.0 --=-=-= Content-Type: text/plain We should be more careful next time... --=-=-=--