mirror of
https://github.com/irssi/irssi.git
synced 2026-08-09 03:40:16 +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%
In enqueue_otr_fragment(), after a ?OTR: reassembly has been opened (opc->full_msg != NULL), the end-tag check evaluates msg[msg_len - 1] where msg_len is size_t. If a PRIVMSG whose body decodes to an empty string reaches this path, msg_len is 0 and msg_len - 1 wraps to SIZE_MAX, indexing far off the page and crashing irssi (SIGSEGV). The initial-fragment path is safe because it is gated by 'pos &&' (strstr of an empty string returns NULL), but the open-reassembly path has no such guard. recode_in() returns a non-NULL empty string for an empty PRIVMSG body, and sig_message_private (signal_add_first on "message private") feeds it straight to otr_receive()/enqueue_otr_fragment(). Relays/bouncers such as bitlbee/znc and some ircds pass PRIVMSGs with an empty trailing parameter through to the client. Drop an empty fragment early: if a reassembly is open, keep waiting for more (OTR_MSG_WAIT_MORE); otherwise treat it as an original message (OTR_MSG_ORIGINAL), matching the existing behaviour of the else branch. |
||
|---|---|---|
| .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.
