mirror of
https://github.com/irssi/irssi.git
synced 2026-08-08 19:30:15 +02:00
The client of the future
https://irssi.org
- C 90.6%
- XS 3.4%
- Perl 2.1%
- Meson 2%
- Prolog 1.5%
- Other 0.4%
enqueue_otr_fragment() reassembles ?OTR: multi-fragment OTR messages into a per-peer heap buffer (opc->full_msg), grown by realloc on every fragment that does not end with the OTR end tag '.'. The buffer has no total size limit. A remote IRC user can open a reassembly by sending a query PRIVMSG whose body begins with ?OTR: and lacks the trailing '.', then keep sending further PRIVMSGs: each is appended to opc->full_msg (roughly one IRC-line-length worth of bytes per fragment) with no bound, growing it until the victim irssi is OOM-killed. No OTR session is required -- the peer context is created lazily by otr_find_context(..., create=1) on first contact in otr_receive(), and sig_message_private (signal_add_first on "message private") feeds every query PRIVMSG straight to otr_receive()/enqueue_otr_fragment(). Add an OTR_REASM_MAX_SIZE (256 KiB) cap on the total reassembled size. When appending a fragment would exceed it, free and reset the reassembly state and return OTR_MSG_ERROR, on both the subsequent-fragment and initial-fragment paths. 256 KiB is far above any legitimate OTR message, so there is no functional regression. |
||
|---|---|---|
| .github/workflows | ||
| .obs | ||
| docs | ||
| fuzz-support | ||
| scripts | ||
| src | ||
| subprojects | ||
| tests | ||
| themes | ||
| utils | ||
| .clang-format | ||
| .gitattributes | ||
| .gitignore | ||
| .muon_fmt.ini | ||
| AUTHORS | ||
| COPYING | ||
| INSTALL | ||
| irssi-icon.png | ||
| irssi.conf | ||
| MANIFEST.in | ||
| meson.build | ||
| meson_options.txt | ||
| NEWS | ||
| README.md | ||
| TODO | ||
Irssi
Irssi is a modular text mode chat client. It comes with IRC support built in, and there are third party ICB, SILC, XMPP (Jabber), PSYC and Quassel protocol modules available.
Download information
Development source installation
git clone https://github.com/irssi/irssi
cd irssi
meson Build
ninja -C Build && sudo ninja -C Build install
Release source installation
- Download release
- Verify signature
tar xJf irssi-*.tar.xz
cd irssi-*
meson Build
ninja -C Build && sudo ninja -C Build install
Requirements
- glib-2.32 or greater
- openssl
- perl-5.8 or greater (for perl support)
- terminfo or ncurses (for text frontend)
See the INSTALL file for details
Documentation
- New users guide
- Questions and Answers
- Check the built-in
/HELP, it has all the details on command syntax
Themes
Scripts
Modules
Security information
Please report security issues to staff@irssi.org. Thanks!
Bugs / Suggestions / Contributing
Check the GitHub issues if it is already listed in there; if not, open an issue on GitHub or send a mail to staff@irssi.org.
Irssi is always looking for developers. Feel free to submit patches through GitHub pull requests.
You can also contact the Irssi developers in #irssi on irc.libera.chat.
