- Client: Fix signature verification double free
- Packet engine: prevent divide by 0 - SKE: Make sure failure received from remote results in error status From upstream repo via Brad
This commit is contained in:
parent
a839823e70
commit
8ff9d48002
@ -1,9 +1,9 @@
|
||||
# $OpenBSD: Makefile,v 1.56 2010/04/26 20:09:18 steven Exp $
|
||||
# $OpenBSD: Makefile,v 1.57 2010/06/02 00:10:18 sthen Exp $
|
||||
|
||||
COMMENT= Secure Internet Live Conferencing (SILC) client
|
||||
|
||||
DISTNAME= silc-client-1.1.8
|
||||
PKGNAME= ${DISTNAME}p3
|
||||
PKGNAME= ${DISTNAME}p4
|
||||
CATEGORIES= net
|
||||
|
||||
HOMEPAGE= http://www.silcnet.org/
|
||||
|
@ -0,0 +1,17 @@
|
||||
$OpenBSD: patch-apps_irssi_src_silc_core_client_ops_c,v 1.1 2010/06/02 00:10:18 sthen Exp $
|
||||
--- apps/irssi/src/silc/core/client_ops.c.orig Sat Dec 13 15:30:25 2008
|
||||
+++ apps/irssi/src/silc/core/client_ops.c Sat May 29 18:58:33 2010
|
||||
@@ -262,10 +262,11 @@ int verify_message_signature(SilcClientEntry sender,
|
||||
sizeof(sender->fingerprint));
|
||||
if (strcmp(fingerprint, fingerprint2)) {
|
||||
/* since the public key differs from the senders public key, the
|
||||
- verification _failed_ */
|
||||
+ verification won't be done */
|
||||
silc_pkcs_public_key_free(pk);
|
||||
silc_free(fingerprint);
|
||||
- ret = SILC_MSG_SIGNED_UNKNOWN;
|
||||
+ silc_free(fingerprint2);
|
||||
+ return SILC_MSG_SIGNED_UNKNOWN;
|
||||
}
|
||||
silc_free(fingerprint2);
|
||||
}
|
15
net/silc-client/patches/patch-lib_silccore_silcpacket_c
Normal file
15
net/silc-client/patches/patch-lib_silccore_silcpacket_c
Normal file
@ -0,0 +1,15 @@
|
||||
$OpenBSD: patch-lib_silccore_silcpacket_c,v 1.1 2010/06/02 00:10:18 sthen Exp $
|
||||
--- lib/silccore/silcpacket.c.orig Sat May 29 18:59:19 2010
|
||||
+++ lib/silccore/silcpacket.c Sat May 29 19:00:31 2010
|
||||
@@ -2231,8 +2231,9 @@ static void silc_packet_read_process(SilcPacketStream
|
||||
|
||||
/* Padding sanity checks */
|
||||
if (cipher && silc_cipher_get_mode(cipher) != SILC_CIPHER_MODE_CTR &&
|
||||
- ((normal && paddedlen % block_len != 0) ||
|
||||
- (!normal && silc_packet_special_len(header) % block_len != 0))) {
|
||||
+ ((normal && block_len && paddedlen % block_len != 0) ||
|
||||
+ (!normal && block_len &&
|
||||
+ silc_packet_special_len(header) % block_len != 0))) {
|
||||
SILC_LOG_DEBUG(("Packet length %d not multiple by cipher block length",
|
||||
paddedlen));
|
||||
silc_mutex_unlock(stream->lock);
|
12
net/silc-client/patches/patch-lib_silcske_silcske_c
Normal file
12
net/silc-client/patches/patch-lib_silcske_silcske_c
Normal file
@ -0,0 +1,12 @@
|
||||
$OpenBSD: patch-lib_silcske_silcske_c,v 1.1 2010/06/02 00:10:18 sthen Exp $
|
||||
--- lib/silcske/silcske.c.orig Sat May 29 19:00:50 2010
|
||||
+++ lib/silcske/silcske.c Sat May 29 19:01:32 2010
|
||||
@@ -2387,6 +2387,8 @@ SILC_FSM_STATE(silc_ske_st_responder_failure)
|
||||
ske->packet = NULL;
|
||||
}
|
||||
ske->status = error;
|
||||
+ if (ske->status == SILC_SKE_STATUS_OK)
|
||||
+ ske->status = SILC_SKE_STATUS_ERROR;
|
||||
|
||||
silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske);
|
||||
silc_schedule_task_del_by_context(ske->schedule, ske);
|
Loading…
Reference in New Issue
Block a user