Bug#964860: buster-pu: package balsa/2.5.6-2+deb10u1

Emilio Pozuelo Monfort pochu at debian.org
Sat Jul 11 12:47:56 BST 2020


Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org at packages.debian.org
Usertags: pu

This fixes the problem that was mentioned in #964435. I have
verified that with the new glib-networking, balsa fails to check
the certs, asking the user to accept/reject it (IMAP is not affected
but SMTP and POP are). With this patched version, it works again.

The new version also works with the old glib-networking, so there's no
bumped dependency here. A breaks could be added to glib-networking,
but let's discuss that on the other bug.

Thanks,
Emilio
-------------- next part --------------
diff -Nru balsa-2.5.6/debian/changelog balsa-2.5.6/debian/changelog
--- balsa-2.5.6/debian/changelog	2018-12-23 23:17:25.000000000 +0100
+++ balsa-2.5.6/debian/changelog	2020-07-11 09:22:22.000000000 +0200
@@ -1,3 +1,11 @@
+balsa (2.5.6-2+deb10u1) buster; urgency=medium
+
+  * Provide server identity when validating certificates (allows to verify
+    certs with a glib-networking patch for CVE-2020-13645).
+    Patch taken from Ubuntu. Closes: #961792.
+
+ -- Emilio Pozuelo Monfort <pochu at debian.org>  Sat, 11 Jul 2020 09:22:22 +0200
+
 balsa (2.5.6-2) unstable; urgency=medium
 
   * Restore -Wl,-O1 to our LDFLAGS
diff -Nru balsa-2.5.6/debian/patches/CVE-2020-13645.patch balsa-2.5.6/debian/patches/CVE-2020-13645.patch
--- balsa-2.5.6/debian/patches/CVE-2020-13645.patch	1970-01-01 01:00:00.000000000 +0100
+++ balsa-2.5.6/debian/patches/CVE-2020-13645.patch	2020-07-11 09:20:22.000000000 +0200
@@ -0,0 +1,596 @@
+Backport of upstream patch
+From e8952e3ccb1bb5094a6f8920e7c274e2e7dae184 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Albrecht=20Dre=C3=9F?= <albrecht.dress at arcor.de>
+Date: Sat, 18 Apr 2020 18:25:30 +0200
+Subject: [PATCH] fix NULL server-identity TLS warning with recent gio
+
+- libnetclient/net-client.c: use the remote host name as expected server
+  identity for TLS connections.  This fixes a strange warning when using
+  recent GIO versions (see issue #34)
+- libnetclient/test: replace the snakeoil test certificates as the old ones
+  are not accepted any more by GnuTLS for security reasons; fix unit tests;
+  add some more Valgrind suppressions for false-positives
+---
+ libnetclient/net-client.c       |  27 +++++--
+ libnetclient/test/ca_cert.pem   | 106 +++++++++++++++----------
+ libnetclient/test/cert.pem      | 134 ++++++++++++++++++++------------
+ libnetclient/test/cert_u.pem    | 130 ++++++++++++++++++++-----------
+ libnetclient/test/tests.c       |  28 +++----
+ libnetclient/test/valgrind.supp |  15 ++++
+ 6 files changed, 280 insertions(+), 160 deletions(-)
+
+--- a/libnetclient/net-client.c
++++ b/libnetclient/net-client.c
+@@ -25,6 +25,7 @@ struct _NetClientPrivate {
+ 	gsize max_line_len;
+ 
+ 	GSocketClient *sock;
++	GSocketConnectable *remote_address;
+ 	GSocketConnection *plain_conn;
+ 	GIOStream *tls_conn;
+ 	GDataInputStream *istream;
+@@ -115,13 +116,19 @@ net_client_connect(NetClient *client, GE
+ 	if (priv->plain_conn != NULL) {
+ 		g_set_error(error, NET_CLIENT_ERROR_QUARK, (gint) NET_CLIENT_ERROR_CONNECTED, _("network client is already connected"));
+ 	} else {
+-		priv->plain_conn = g_socket_client_connect_to_host(priv->sock, priv->host_and_port, priv->default_port, NULL, error);
+-		if (priv->plain_conn != NULL) {
+-			g_debug("connected to %s", priv->host_and_port);
+-			priv->istream = g_data_input_stream_new(g_io_stream_get_input_stream(G_IO_STREAM(priv->plain_conn)));
+-			g_data_input_stream_set_newline_type(priv->istream, G_DATA_STREAM_NEWLINE_TYPE_CR_LF);
+-			priv->ostream = g_io_stream_get_output_stream(G_IO_STREAM(priv->plain_conn));
+-			result = TRUE;
++		priv->remote_address = g_network_address_parse(priv->host_and_port, priv->default_port, error);
++		if (priv->remote_address != NULL) {
++			priv->plain_conn = g_socket_client_connect(priv->sock, priv->remote_address, NULL, error);
++			if (priv->plain_conn != NULL) {
++				g_debug("connected to %s", priv->host_and_port);
++				priv->istream = g_data_input_stream_new(g_io_stream_get_input_stream(G_IO_STREAM(priv->plain_conn)));
++				g_data_input_stream_set_newline_type(priv->istream, G_DATA_STREAM_NEWLINE_TYPE_CR_LF);
++				priv->ostream = g_io_stream_get_output_stream(G_IO_STREAM(priv->plain_conn));
++				result = TRUE;
++			} else {
++				g_object_unref(priv->remote_address);
++				priv->remote_address = NULL;
++			}
+ 		}
+ 	}
+ 
+@@ -146,6 +153,10 @@ net_client_shutdown(const NetClient *cli
+ 			g_object_unref(G_OBJECT(client->priv->plain_conn));
+ 			client->priv->plain_conn = NULL;
+ 		}
++		if (client->priv->remote_address != NULL) {
++			g_object_unref(client->priv->remote_address);
++			client->priv->remote_address = NULL;
++		}
+ 	}
+ }
+ 
+@@ -450,7 +461,7 @@ net_client_start_tls(NetClient *client,
+ 	} else if (client->priv->tls_conn != NULL) {
+ 		g_set_error(error, NET_CLIENT_ERROR_QUARK, (gint) NET_CLIENT_ERROR_TLS_ACTIVE, _("connection is already encrypted"));
+ 	} else {
+-		client->priv->tls_conn = g_tls_client_connection_new(G_IO_STREAM(client->priv->plain_conn), NULL, error);
++		client->priv->tls_conn = g_tls_client_connection_new(G_IO_STREAM(client->priv->plain_conn), client->priv->remote_address, error);
+ 		if (client->priv->tls_conn != NULL) {
+ 			if (client->priv->certificate != NULL) {
+ 				g_tls_connection_set_certificate(G_TLS_CONNECTION(client->priv->tls_conn), client->priv->certificate);
+--- a/libnetclient/test/ca_cert.pem
++++ b/libnetclient/test/ca_cert.pem
+@@ -1,46 +1,68 @@
+ -----BEGIN CERTIFICATE-----
+-MIIDxjCCAq6gAwIBAgIBATANBgkqhkiG9w0BAQUFADB0MRMwEQYKCZImiZPyLGQB
+-GRYDb3JnMRYwFAYKCZImiZPyLGQBGRYGc2ltcGxlMRMwEQYDVQQKDApTaW1wbGUg
+-SW5jMRcwFQYDVQQLDA5TaW1wbGUgUm9vdCBDQTEXMBUGA1UEAwwOU2ltcGxlIFJv
+-b3QgQ0EwHhcNMTYwNTI0MTYxNjU4WhcNMjYwNTI0MTYxNjU4WjB0MRMwEQYKCZIm
+-iZPyLGQBGRYDb3JnMRYwFAYKCZImiZPyLGQBGRYGc2ltcGxlMRMwEQYDVQQKDApT
+-aW1wbGUgSW5jMRcwFQYDVQQLDA5TaW1wbGUgUm9vdCBDQTEXMBUGA1UEAwwOU2lt
+-cGxlIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPn/T4
+-w9Ggb9aXhZ5stchfb+gZAnLkYKSZZC/+SryGwToK2HouWCwMUx8Jgg9DeuIjjVEx
+-gnuTveVWWWL7QWdIWOrcDYN8XDjS/Rx0brhmDY5q19/CuNPDWMPb5/8SboOmEM4b
+-D/S0gsBUI8N7yJ6qYzvtAB5GDBy8LcK+RBp197R5aFlqIUDy5neH2NoA6XU5NcfS
+-cHpqs/oJkg0zVksrZ279mGEHJTxtpPVlm7/z153DgxB1XDWUGIbkmzzl8FPrLGWo
+-o1gUFs3TfxnYuFl4r2NhwYeVEUcuBYFhJGVbeisV47ynFUV8gHqxaH03DfghaR+6
+-WGe4MBmYpM3NTi6jAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+-BTADAQH/MB0GA1UdDgQWBBQ+k/H1yqCqwMnESs4nzdqhHI2IkDAfBgNVHSMEGDAW
+-gBQ+k/H1yqCqwMnESs4nzdqhHI2IkDANBgkqhkiG9w0BAQUFAAOCAQEAswaE/9XS
+-uVbWyY6CsMry1dfTCzEaTe3odrVe2GM3nU4nowAUqJfqR4JAYjqJim37997n6jbZ
+-lK168uFwI/mj4QCY72KixbaSpl7I54MUNXtBtb1/kTwXDeCMFO0Iw1f60Kr8QOeM
+-d+aktreCqE+Gss3nmJJ6TT7b/X1UHywlBcO0ZX4y0aDlVWgMqOHxAYF4+Ayxq4El
+-MH3+aDItPqnYp1WXfIn/8cYKhdbKjPgZWXVtIzmPHPrAbLQT3DxvPEv4MIwmWx24
+-/c4mAvM8TStB+m2/tYZfRflPZ133Nw5zbKHaP1OJgqErIAZCUCHU8tVVBnc/uFHm
+-sS+pZL8j9zrzhg==
++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
++RczkgYKIzmZd7Q==
+ -----END CERTIFICATE-----
+ -----BEGIN CERTIFICATE-----
+-MIIDzzCCAregAwIBAgIBAjANBgkqhkiG9w0BAQUFADB0MRMwEQYKCZImiZPyLGQB
+-GRYDb3JnMRYwFAYKCZImiZPyLGQBGRYGc2ltcGxlMRMwEQYDVQQKDApTaW1wbGUg
+-SW5jMRcwFQYDVQQLDA5TaW1wbGUgUm9vdCBDQTEXMBUGA1UEAwwOU2ltcGxlIFJv
+-b3QgQ0EwHhcNMTYwNTI0MTYxOTAyWhcNMjYwNTI0MTYxOTAyWjB6MRMwEQYKCZIm
+-iZPyLGQBGRYDb3JnMRYwFAYKCZImiZPyLGQBGRYGc2ltcGxlMRMwEQYDVQQKDApT
+-aW1wbGUgSW5jMRowGAYDVQQLDBFTaW1wbGUgU2lnbmluZyBDQTEaMBgGA1UEAwwR
+-U2ltcGxlIFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+-AQDQXD9AyJJwmx7Ng/Jo6dJy8xLJnWMWi8MmHOhqig5GPuOPff/iNRnhdU6xdr2j
+-v5BCdmHbosnOxPq3RJ9r9wyQv6PukCkPvD/2bePQV+ObqegTR5VlNVBhPoWLda5Y
+-hMnLTX/mVjC0duz2x+UcS/hd3Yd/QdVdFMJ0LJvJ96SplyfOAowTmw4jii/dtkl+
+-hTGp8xl9+wyi1c/ZFKhq3efgC5ozh5oyMMJ6iziaxecq/Rehk4KWDxlPQ5usFU6n
+-ls1lBuBszJfNR1XGTCzlvBR/TWNu1WiZmpXgizIoSehOgc/27G4EvkEa4PlEp6I6
+-r5CQrDebSlzJSkyhFnkMZQT/AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNV
+-HRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTuAfbK98FLKXj/yBvsD5owPDo5ijAf
+-BgNVHSMEGDAWgBQ+k/H1yqCqwMnESs4nzdqhHI2IkDANBgkqhkiG9w0BAQUFAAOC
+-AQEAZYWaIHK+09tQN7IHJZatoeE/06QM/pNZBe5/er3C95zOgis7jCOC+Au4srLf
+-+oi8y+i4WPqRQAJKOOIf7nLMQfGqEV1UVfEOiP40I5WmNQDk3E5jFqTRZC42mf1v
+-u2XL3FkjSj+LQyLCz80JdYFUn+I6lyvNSkAC2f5IA+aleX628LtyiuLF0T3Vtjul
+-95vgaGd8m3Zr3/rGUeTMhMHPEGvTjTcXyOC1Sc85PhChZtGDehhafosJU8vXmVeH
+-dCk3xxx2sjBvWxwTM1pdCJ0HzP7vveLhB22b2aPu8dVAiGJVKtWrnVj1whQeC3qr
+-IjagpJLKKVbRnz1plUtXsO6YdA==
++MIIF3zCCA8egAwIBAgIRAPERRXhxJuhkl6ZG1ErW9YgwDQYJKoZIhvcNAQENBQAw
++dDETMBEGCgmSJomT8ixkARkWA29yZzEWMBQGCgmSJomT8ixkARkWBnNpbXBsZTET
++MBEGA1UECgwKU2ltcGxlIEluYzEXMBUGA1UECwwOU2ltcGxlIFJvb3QgQ0ExFzAV
++BgNVBAMMDlNpbXBsZSBSb290IENBMB4XDTIwMDQxODE0Mzg1OVoXDTMwMDQxODE0
++Mzg1OVowejETMBEGCgmSJomT8ixkARkWA29yZzEWMBQGCgmSJomT8ixkARkWBnNp
++bXBsZTETMBEGA1UECgwKU2ltcGxlIEluYzEaMBgGA1UECwwRU2ltcGxlIFNpZ25p
++bmcgQ0ExGjAYBgNVBAMMEVNpbXBsZSBTaWduaW5nIENBMIICIjANBgkqhkiG9w0B
++AQEFAAOCAg8AMIICCgKCAgEAx9Ml4WPP5OvG0slRXubd8MFMxqiIwcC1BTvjp0ab
++iAid5jSeVBj3BdF0s9RwnE4fUgQe6OKFSRhCn6Wrm+oSiGJutfmK9nVv1rCQ+oXl
++K4oEYVXvIiT4BfS1g29OAc3hHmP9XbePuKdFPpDrGgMHFqZ6bbCsGWdRNPnhfi7F
++DLSER64FmC8VrQ9Gm9w5Gem6JHS+xE/mJjGgQ1QyRbGph7ow/NeDFKxvMMr6l1vU
++UtpViKto4z3uO8ayJBDNgm3uTMkjB8VUF7fFCv6GswMHz3NbpvU5LinUs0f/oyRL
++7yBfpUrDAwNYHjwlU+0YoRAVJ2XcuwmkNCSQqThOa7hkS0sCtDpHrUFnwvKl5QrY
++Sc/Asq4Zxoww7aq0PvDmVfCmQJKUKnPmbAgK1pt85XKFadk/GMxIiy6in4mdo1Eu
++kKd7AFfBZHDtlFKQkBTmtbEN/erAQhhikYccIjNxKMDbjuusaulaYwR+hN/wfpGa
++wEQiA18jGW/DTKPJdsfIReEq5xkKYJKJbTIAinB8MXb6m6Bc3CaExPqEkp2xfVVA
++Ek0YgasbGNB+x+MM6vLPG90L9rGmZOzWpzMcgUrUsEl/55X/fH9E2Y82H1k6bzxU
++6KrADtU2yUfq7TRqJ6C4r+bY1JQ4hwr9PRgkm/Bw+abQbwRUnilR6o90Yazoy352
++afsCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
++HQYDVR0OBBYEFKvMpDnWZBecYHz+zSdMrbG5DxpzMB8GA1UdIwQYMBaAFAFyfXr2
++c9uIJ0G3bklmVILWdxKoMA0GCSqGSIb3DQEBDQUAA4ICAQBttUtYlW3beg2nHnQl
++J+rjlNCfE33Un4aB94FvkymfDrymlYRbNn7MFpJGI8+y5r3ChY0ILUicBfK4WO9b
++QweOetRDAwMoVF+fWYXQlQ0AC+btgOl18Xw5xbUsBsE0xY4nL2uJYnVw09Rxk+NB
++HP3KbXhTz7WAZYBu7ziSapG+t4aSYT96uD9iS1bELaUUnhtDr2wAdSs+RCOrtU9B
++TrIue6wQOdEZkasRjFtIg608u6fJ+0ZiZyox098xOFtXrPyNYMj9L2sGpAgAvs6P
++uziykvp36t2uF5RyuFRnf8RUYZcAXHwyTfAhdEUDby52JvWb/V6RJskvCx8hgLbb
++yB5OtgkK17LHsKC0ehyFlQzgKk10J2EWAUDrp55xcyqQ7izf7GaJFqoPFuOoiwRk
++W5VwZm/XVPVpnHHUzZbhMddCVS+dWr43g6L9YVb9jXmh+jC7vnmeQdk9tCAVyhPl
++E/SACjcW8N1CpHolWZ/G486F0CP9zQ91XpSmt5gC4BrqJoNxbvDJ32cJ8mrEKcjr
++PK2yCVsvzBlm5j6UEMsHirS5Uj0o3v/th8kOawytNCICX0UFrs6pIb4/P7JhOFi1
+++WeLKTlauQaJDhMWT0JSPVt38TybhFjfkZKh7wEDqEdQNlccaWKnml0bvNff6hPL
++wduu/4nH3sMBsLVBa9a0a0bGdw==
+ -----END CERTIFICATE-----
+--- a/libnetclient/test/tests.c
++++ b/libnetclient/test/tests.c
+@@ -222,7 +222,7 @@ test_basic_crypt(void)
+ 	g_clear_error(&error);
+ 	sput_fail_unless(net_client_set_cert_from_file(basic, "cert_u.pem", NULL) == TRUE, "load cert file w/ plain key ok");
+ 	sput_fail_unless(net_client_connect(basic, NULL) == TRUE, "connect ok");
+-	sput_fail_unless(net_client_start_tls(basic, NULL) == TRUE, "start tls: ok");
++	sput_fail_unless(net_client_start_tls(basic, &error) == TRUE, "start tls: ok");
+ 	sput_fail_unless(net_client_is_encrypted(basic) == TRUE, "encrypted");
+ 	g_object_unref(basic);
+ 
+@@ -350,15 +350,15 @@ test_smtp(void)
+ 	sput_fail_unless(net_client_smtp_can_dsn(NULL) == FALSE, "NULL client: no dsn");
+ 	sput_fail_unless(net_client_smtp_can_dsn(smtp) == TRUE, "inetsim: can dsn");
+ 
+-	sput_fail_unless(net_client_smtp_send_msg(NULL, msg, NULL) == FALSE, "send msg, NULL client");
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, NULL, NULL) == FALSE, "send msg, NULL message");
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == FALSE, "send msg: error, no sender");
++	sput_fail_unless(net_client_smtp_send_msg(NULL, msg, NULL, NULL) == FALSE, "send msg, NULL client");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, NULL, NULL, NULL) == FALSE, "send msg, NULL message");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == FALSE, "send msg: error, no sender");
+ 	sput_fail_unless(net_client_smtp_msg_set_sender(msg, "some at sender.com") == TRUE, "set sender ok");
+ 	sput_fail_unless(net_client_smtp_msg_set_sender(msg, "me at here.com") == TRUE, "replace sender ok");
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == FALSE, "send msg: error, no recipient");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == FALSE, "send msg: error, no recipient");
+ 	sput_fail_unless(net_client_smtp_msg_add_recipient(msg, "you at there.com", NET_CLIENT_SMTP_DSN_NEVER)  == TRUE,
+ 		"add recipient ok (no dsn)");
+-	op_res = net_client_smtp_send_msg(smtp, msg, &error);
++	op_res = net_client_smtp_send_msg(smtp, msg, NULL, &error);
+ 	sput_fail_unless((op_res == FALSE) && (error->code == NET_CLIENT_ERROR_SMTP_PERMANENT), "send failed: not authenticated");
+ 	g_clear_error(&error);
+ 	g_object_unref(smtp);
+@@ -391,7 +391,7 @@ test_smtp(void)
+ 	g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp);
+ 	sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success");
+ 	msg_buf.sim_error = TRUE;
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == FALSE, "send msg: error in callback");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == FALSE, "send msg: error in callback");
+ 	msg_buf.sim_error = FALSE;
+ 	g_object_unref(smtp);
+ 
+@@ -401,7 +401,7 @@ test_smtp(void)
+ 	sput_fail_unless(net_client_smtp_allow_auth(smtp, FALSE, NET_CLIENT_SMTP_AUTH_PLAIN) == TRUE, "force auth meth PLAIN");
+ 	g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp);
+ 	sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success");
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success");
+ 	g_object_unref(smtp);
+ 
+ 	// STARTTLS required, LOGIN auth
+@@ -413,7 +413,7 @@ test_smtp(void)
+ 	g_signal_connect(G_OBJECT(smtp), "cert-check", G_CALLBACK(check_cert), NULL);
+ 	g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp);
+ 	sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success");
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success");
+ 	g_object_unref(smtp);
+ 
+ 	// STARTTLS optional, CRAM-MD5 auth
+@@ -426,7 +426,7 @@ test_smtp(void)
+ 	g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp);
+ 	sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success");
+ 	sput_fail_unless(net_client_smtp_msg_set_dsn_opts(msg, "20170113212711.19833 at here.com", FALSE) == TRUE, "dsn: envid, headers");
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success");
+ 	g_object_unref(smtp);
+ 
+ 	// STARTTLS, CRAM-SHA1 auth
+@@ -438,7 +438,7 @@ test_smtp(void)
+ 	g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp);
+ 	sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success");
+ 	sput_fail_unless(net_client_smtp_msg_set_dsn_opts(msg, NULL, TRUE) == TRUE, "dsn: no envid, message");
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success");
+ 	g_object_unref(smtp);
+ 
+ 	// STARTTLS, auto select auth
+@@ -450,7 +450,7 @@ test_smtp(void)
+ 	sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success");
+ 	sput_fail_unless(net_client_smtp_msg_set_dsn_opts(msg, "20170113212711.19833 at here.com", TRUE) == TRUE,
+ 		"dsn: envid, message");
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success");
+ 	g_object_unref(smtp);
+ 
+ 	// SSL, auto select auth
+@@ -462,7 +462,7 @@ test_smtp(void)
+ 	sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success");
+ 	sput_fail_unless(net_client_smtp_msg_set_dsn_opts(msg, "20170113212711.19833 at here.com", TRUE) == TRUE,
+ 		"dsn: envid, message");
+-	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success");
++	sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success");
+ 	g_object_unref(smtp);
+ 
+ 	net_client_smtp_msg_free(NULL);
+@@ -679,7 +679,7 @@ test_pop3(void)
+ 	g_message("message count: %u", g_list_length(msg_list));
+ 	if (msg_list != NULL) {
+ 		sput_fail_unless(net_client_pop_retr(pop, msg_list, msg_cb, NULL, NULL) == TRUE, "retr ok");
+-		sput_fail_unless(net_client_pop_dele(pop, NULL,NULL) == FALSE, "dele w/o message list");
++		sput_fail_unless(net_client_pop_dele(pop, NULL, NULL) == FALSE, "dele w/o message list");
+ 		sput_fail_unless(net_client_pop_dele(pop, msg_list, NULL) == TRUE, "dele ok");
+ 		g_list_free_full(msg_list, (GDestroyNotify) net_client_pop_msg_info_free);
+ 	}
+--- a/libnetclient/test/valgrind.supp
++++ b/libnetclient/test/valgrind.supp
+@@ -15,3 +15,18 @@
+    fun:g_type_register_static
+ }
+ 
++{
++   dl_init
++   Memcheck:Leak
++   match-leak-kinds:all
++   ...
++   fun:_dl_init
++}
++
++{
++   g_type_class_ref
++   Memcheck:Leak
++   match-leak-kinds:all
++   ...
++   fun:g_type_class_ref
++}
+--- a/libnetclient/test/cert.pem
++++ b/libnetclient/test/cert.pem
+@@ -1,53 +1,89 @@
+ -----BEGIN CERTIFICATE-----
+-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
++Ync/p4RR
+ -----END CERTIFICATE-----
+------BEGIN RSA PRIVATE KEY-----
+-Proc-Type: 4,ENCRYPTED
+-DEK-Info: DES-EDE3-CBC,AAB517FD5312490C
+-
+-Z4IvcUkeV2vcvF8AR/jt6EDi4MiMKQXNAswQV1BqJMfotGJxQR/XSnrnh0EYadkz
+-wRmOhASu6gnVHv0diC37kE1F9DShrqMeia8pXP52hYje/368qTz73/Y70lVIKujz
+-G4Ns/1kB2n9CDAi7Kk/hOSnAzpMNirtkabAnpR2VxgyH44DzwMgxavWCGibvIq8Q
+-eyqd7sB6lOsP4/gaGILRCGjsYIgtC1xq6rcRRl7Mk07hxjroTy1rtDjOMzJ/RtYX
+-FNDqlk0KJeuH/wJCaJ1ys2lA4QSKLs0P/kAh/nmwuMnOFyz46wMEIOE0JEAlJfB/
+-yNv93QAOZiyZ71hWtq2hkI6c8znS49rG+ULiYOEDuhU5s54SEHeA1Oz2vtmu5Wz0
+-DBzIlCGKNy+v9BOWkbnpAgA/S1cLNGX2Cf5f1ReRYiaHCz6LCaYXzDbV3x8FvU/s
+-lKAuuq2nfq2jDHrbSw4Nni8SVsN6vjUzQieQwux0J3XPYMsxwQwL8Z01bZaeom0L
+-odQwE64vGtQWsvmhA20dBYthurVzNK9FKZY1oKd7y2vdplKRUg/24J2/HwlZB/ru
+-CN4Yrsky5b+q37OafP7ycSCesR+bQWrfLMyUMyUU/9JqH7eIoEh5+LfSZMqSEDAt
+-ERi2UxHepSN/oZK8ECAzbUmcSwKJ/oHI5fGnbaN4hsxbcgwoW33+y4ZGFpmaLXj1
+-5P2jY1GEfU6ql9oWrRgSAwizfI1riyK+N3x4ecCRf2dO6rMKrJk7AbA3KnQbT76r
+-jZOmbGPpWA+7d8RAclr8cAe5LegETzuzA42VanvFhzMoo5opYcaYsPqlXtrj5fbX
+-f02l7raps/r1eoJD7esT6leBlQZjAsd2YiGqio1rQmMK5T7kLK2CjLZTGAeQRDJF
+-ZiOlZmqC70n5rBFzCUGKw2Hofns7qKpj5+Je9SBbuNkpyahiRRRUlTrQi9sXuEjL
+-cd6XX9jURumyv/3XITeauDh4jUtboi4BrBHbztfJIVrXLJ24bsj0OLgnwGHe8vQR
+-MUWFRyYGDNzh16hdDPSni1Z6aqwuxiX7FYXs9ZYuUXIl7Klq9wVDLPOHao9xWAWk
+-yeMeNETj8bqQmnfO3XgOdH7uOZdZAMFtySKF0Quh/77SvCsqiXFAapwEdZFvnycO
+-VmLiQ7eXG4CZZE9QaDfbpY4JcYA3Fyk9OhACErEAyFyEPUTD4B9wXJ1mQNfaWJQD
+-Nv6WpCQawCZLPy4Hohe+fCG4ZLZOrTJjXSSNhWPXLgymNbdsWLdcS/tLKfx4nTAY
+-XU9ShGTiDE6J0DY2vNmsNK9Gl1b69oiWUc1DkaDc5VYjRpkqhqd2jzeJ3rS0SHLE
+-ccejoQA7DPZZ7LqKs6v79STay05CSGpIsC0sa+8JemmaOSRgC8a73dNu6eZ8gywL
+-uUvmSEmYXILJhYoObvlxv2mnjwXUpU+svFskj2QxbjVPOC23YNsbZKNWtCRx+cbJ
+-RpGye05q7XmjmIeFO3SdnvQmaKpetIEEULihD9hy25OVOH3VbfgBoHdphhCr5Kom
+-LXGbxmYKL/Br4bTVkqczLXTBrEAllhEgCkrFfOJX73SUItW53I/p/Jdu7Xm6+f6m
+------END RSA PRIVATE KEY-----
++-----BEGIN ENCRYPTED PRIVATE KEY-----
++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
++xAhfPXm/AR++DSgVFD4Vum7LGB1UT/AT
++-----END ENCRYPTED PRIVATE KEY-----
+--- a/libnetclient/test/cert_u.pem
++++ b/libnetclient/test/cert_u.pem
+@@ -1,51 +1,87 @@
+ -----BEGIN CERTIFICATE-----
+-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
++LvplZxn5
+ -----END CERTIFICATE-----
+ -----BEGIN PRIVATE KEY-----
+-MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC68RvpEkQivKpQ
+-TWLxECBChnu+UguBgbOOkq95VIKV+kvMpwBxoembOJU1UCLpd2xWyVQ9KZgw9mg5
+-3GlIb3V4xpOfU6NTpa4NU8fGbnVfBMxOKFOVv5seF8NPxejwHF7w+XBXgNpxDH2P
+-Iq8spftWcGPMnPzs1XDfi6L51Fl9lExgG0NPhfbv3z38ZflpnXMLG0fFBwF5mLsq
+-Ds/IMuuX3yguJJib5oYBEdEzGXdHSry0GiuWgHWBfcNlYlNLW3eejI2atfAavNEG
+-WWDGkv+xQINS3GBKFYN3Ag+B6C5pEWN8IFiWD8R1DfTThoazN231x1MGhgFg+vA7
+-2QMyS/jnAgMBAAECggEBAKDmGwas4RYg2loJcUpYfdukUmdJyHtr/faNjBhaw5aA
+-erMnXftvx1gBCHN9iL73ObksyaNm5IXn32dFrRxaSnpsN+zfGOlK5Za08HJ66eyh
+-fZMbpG10H/dzrng/uDDJynGPz8CQt/KrNHp4+Nrt9Xi9fThEOnFBeEf/sINk4K1y
+-+M6lBgMVc7hjI9P6NH92yj8is5X2cBTDx521jnAOwdiNqVeu/ndddYisM2NBhfRK
+-oV/lnSZABVLykJM+eKCkcviCjcnL9AkcbXMPKPjh5LbB0NOSi/uKtQfvBEcFDsfx
+-Q3H0OWXJwMUMrqWuzsAt63gAKExi3O26T3v43gqPbFECgYEA4fiGrgTM6CR+8BbM
+-7SFmhBURVCC54iQ6LGhBzC2BEpQazQ1T2jJyuXAm881Lmc2MkR7mzeiQlDrqjrQv
+-1Ao5EEedfiR4IF3oUyDb0UPkT8GF7kholvjCXQgWMADrSln3hnKndlsAI7/y4LYR
+-ZKxSSAoS8bv0MyrOU6PuRzDqXSkCgYEA08jTj2ewjbscbSS9tj+RSmbpA1GxQP6D
+-ZPukfDAc7seZO24c1tYRFE3+qB5qMzB/sOWveoIc8Ii5LTa0VofMMEiuRKoaedVq
+-z8NixkjmRqQ/YQKmJaEUjaXw0tPr/sENnxmRKINTdPGyTQewaX+Xi//wTeaM89ZR
+-E76UDfoRV48CgYEAzi0IFTbkDttdxonHKIVVGCZwzSWe9KrBOUtW3YiXP/BKE9WZ
+-MHjfHDssDz69P/O/0Zk0VaNgZx7qbJITIZDCSAxPsoxr3nxQQai1Z9ZeNjcIkEUY
+-yMbn8CI0vE/aXth/c/iguuiE1BmK7WSxsf1YhcpLRqyLPzRLVR05h1MmQyECgYAz
+-+P3KHIUcUwXH1xNjbTgnjRezw9F/BLaUCpk0DM6c3ojBJ+WV51SrqfRLp6MiSs2b
+-SNKGevXFJZhj+x/IeGzokH2Lxj7XFUOwFt/fjzZLsbUIBpFlfKFBna563pz0mMXR
+-/IE98vSBJ2s9Mhzd1v0G01lSlLiUgkzFTqigwXSOCwKBgQCGSDpRZxuL7xfO0++S
+-jJxBdGCX/20vVJ3jdvzO2BtmMr87gIgHNA38TG1u5TWcYgvtqzS8kZcKsKJiLkLR
+-8qlPYpyCjD+4sOm2Yg7LgH/O0MbEm1RMTpZQ/XVk98afFoXqM9O17EyYL4GIDbVO
+-4+Pa9RSnfdHcOTPl4DjTkePpZQ==
++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
++BrXwsXY2ZPcP/iq/zC2yMQqnTkK748U=
+ -----END PRIVATE KEY-----
diff -Nru balsa-2.5.6/debian/patches/series balsa-2.5.6/debian/patches/series
--- balsa-2.5.6/debian/patches/series	2018-12-23 23:17:25.000000000 +0100
+++ balsa-2.5.6/debian/patches/series	2020-07-11 09:20:22.000000000 +0200
@@ -0,0 +1 @@
+CVE-2020-13645.patch


More information about the pkg-gnome-maintainers mailing list