FreeBSD Bugzilla – Attachment 189192 Details for
Bug 224664
net-p2p/libtorrent: Fix remote DoS
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
lt_ports_fix.patch (text/plain), 3.03 KB, created by
Henry
on 2017-12-29 02:39:44 UTC
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Henry
Created:
2017-12-29 02:39:44 UTC
Size:
3.03 KB
patch
obsolete
>diff -Nur libtorrent.orig/Makefile libtorrent/Makefile >--- libtorrent.orig/Makefile 2017-12-29 03:09:54.133976000 +0100 >+++ libtorrent/Makefile 2017-12-29 03:12:30.515381000 +0100 >@@ -2,7 +2,7 @@ > > PORTNAME= libtorrent > PORTVERSION= 0.13.6 >-PORTREVISION= 4 >+PORTREVISION= 5 > CATEGORIES= net-p2p > MASTER_SITES= http://rtorrent.net/downloads/ > >diff -Nur libtorrent.orig/files/patch-fix_build_bencoders_callers_crash libtorrent/files/patch-fix_build_bencoders_callers_crash >--- libtorrent.orig/files/patch-fix_build_bencoders_callers_crash 1970-01-01 01:00:00.000000000 +0100 >+++ libtorrent/files/patch-fix_build_bencoders_callers_crash 2017-12-29 03:11:07.972268000 +0100 >@@ -0,0 +1,46 @@ >+ >+https://github.com/rakshasa/libtorrent/pull/99/files >+ >+--- src/protocol/extensions.cc.orig 2015-08-08 17:01:32.000000000 +0200 >++++ src/protocol/extensions.cc 2017-12-02 01:46:38.522736000 +0100 >+@@ -394,7 +394,7 @@ >+ if (m_download->info()->is_meta_download() || piece >= pieceEnd) { >+ // reject: { "msg_type" => 2, "piece" => ... } >+ m_pendingType = UT_METADATA; >+- m_pending = build_bencode(40, "d8:msg_typei2e5:piecei%zuee", piece); >++ m_pending = build_bencode(sizeof(size_t) + 36, "d8:msg_typei2e5:piecei%zuee", piece); >+ return; >+ } >+ >+@@ -407,7 +407,7 @@ >+ // data: { "msg_type" => 1, "piece" => ..., "total_size" => ... } followed by piece data (outside of dictionary) >+ size_t length = piece == pieceEnd - 1 ? m_download->info()->metadata_size() % metadata_piece_size : metadata_piece_size; >+ m_pendingType = UT_METADATA; >+- m_pending = build_bencode(length + 128, "d8:msg_typei1e5:piecei%zue10:total_sizei%zuee", piece, metadataSize); >++ m_pending = build_bencode((2 * sizeof(size_t)) + length + 120, "d8:msg_typei1e5:piecei%zue10:total_sizei%zuee", piece, metadataSize); >+ >+ memcpy(m_pending.end(), buffer + (piece << metadata_piece_shift), length); >+ m_pending.set(m_pending.data(), m_pending.end() + length, m_pending.owned()); >+--- src/protocol/handshake.cc.orig 2015-08-08 17:01:49.000000000 +0200 >++++ src/protocol/handshake.cc 2017-12-02 01:46:38.523093000 +0100 >+@@ -738,7 +738,7 @@ >+ break; >+ >+ if (m_readBuffer.remaining() > m_encryption.length_ia()) >+- throw internal_error("Read past initial payload after incoming encrypted handshake."); >++ throw handshake_error(ConnectionManager::handshake_failed, e_handshake_invalid_value); >+ >+ if (m_encryption.crypto() != HandshakeEncryption::crypto_rc4) >+ m_encryption.info()->set_obfuscated(); >+--- src/torrent/object_stream.cc.orig 2015-08-08 17:01:32.000000000 +0200 >++++ src/torrent/object_stream.cc 2017-12-02 01:46:38.523350000 +0100 >+@@ -104,7 +104,8 @@ >+ while (first != last && *first >= '0' && *first <= '9') >+ length = length * 10 + (*first++ - '0'); >+ >+- if (length + 1 > (unsigned int)std::distance(first, last) || *first++ != ':') >++ if (length + 1 > (unsigned int)std::distance(first, last) || *first++ != ':' >++ || length + 1 == 0) >+ throw torrent::bencode_error("Invalid bencode data."); >+ >+ return raw_string(first, length);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 224664
: 189192