1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-26 04:46:37 +02:00

Fixed crash with IRC JOIN malformed message (bug #19891)

This commit is contained in:
Sebastien Helleu
2007-05-18 09:13:25 +00:00
parent 5e29f17620
commit 5787acad2c
24 changed files with 3050 additions and 3036 deletions
+2 -1
View File
@@ -1,10 +1,11 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2007-05-11
ChangeLog - 2007-05-18
Version 0.2.5 (under dev!):
* fixed crash with IRC JOIN malformed message (bug #19891)
* fixed bug with nick prefixes on some IRC servers (bug #19854)
* improved setup file save: now writes temporary file, then rename it
(task #6847)
+3 -3
View File
@@ -388,7 +388,7 @@
<entry>couleur</entry>
<entry>couleur Curses ou Gtk</entry>
<entry>'cyan'</entry>
<entry>Couleur pour les noms de machines (fenêtre de discussion)</entry>
<entry>Couleur pour les hôtes (fenêtre de discussion)</entry>
</row>
<row>
<entry><option>col_chat_channel</option></entry>
@@ -1039,7 +1039,7 @@
<entry>booléen</entry>
<entry>'on' ou 'off'</entry>
<entry>'on'</entry>
<entry>Continuer automatiquement les transferts dcc si la connexion avec la machine distante a été perdue</entry>
<entry>Continuer automatiquement les transferts dcc si la connexion avec l'hôte a été perdue</entry>
</row>
<row>
<entry><option>proxy_use</option></entry>
@@ -1067,7 +1067,7 @@
<entry>chaîne</entry>
<entry>toute chaîne</entry>
<entry>''</entry>
<entry>Adresse du serveur proxy (IP ou nom)</entry>
<entry>Adresse du serveur proxy (IP ou nom de machine)</entry>
</row>
<row>
<entry><option>proxy_port</option></entry>
+4 -4
View File
@@ -36,10 +36,10 @@ message: message pour l'absence (si pas de message donn
</programlisting>
<command>ban [canal] [pseudo [pseudo ...]]</command>
<programlisting>
bannit des pseudos ou masques
bannit des pseudos ou hôtes
canal: nom du canal pour le bannissement
pseudo: pseudo ou masque pour le bannissement
pseudo: pseudo ou hôte pour le bannissement
</programlisting>
<command>ctcp cible type [arguments]</command>
@@ -376,10 +376,10 @@ cible: serveur
</programlisting>
<command>unban [canal] pseudo [pseudo ...]</command>
<programlisting>
supprime le bannissement sur des pseudos ou masques
supprime le bannissement sur des pseudos ou hôtes
canal: nom du canal pour supprimer le bannissement
pseudo: pseudo ou masque pour supprimer le bannissement
pseudo: pseudo ou hôte pour supprimer le bannissement
</programlisting>
<command>userhost pseudo [pseudo ...]</command>
+4 -4
View File
@@ -99,9 +99,9 @@ valeur: nombre d'entr
</programlisting>
<command>ignore [masque [[type | commande] [canal [serveur]]]]</command>
<programlisting>
ignorer des messages IRC et/ou des masques
ignorer des messages IRC et/ou des hôtes
masque: pseudo ou masque à ignorer
masque: pseudo ou hôte à ignorer
type: type de message à ignorer (action, ctcp, dcc, pv)
commande: commande IRC
canal: nom du canal pour le ignore
@@ -197,10 +197,10 @@ nom_alias: nom de l'alias
</programlisting>
<command>unignore [nombre | [masque [[type | commande] [canal [serveur]]]]]</command>
<programlisting>
supprimer le ignore des messages IRC et/ou des masques
supprimer le ignore des messages IRC et/ou des hôtes
nombre: numéro de ignore à supprimer (le nombre est affiché sur la liste des ignore)
masque: pseudo ou masque à ignorer
masque: pseudo ou hôte à ignorer
type: type de message à ignorer (action, ctcp, dcc, pv)
commande: commande IRC
canal: nom du canal pour le ignore
+213 -213
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+217 -217
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+17 -11
View File
@@ -446,7 +446,17 @@ irc_recv_cmd_join (t_irc_server *server, char *host, char *nick, char *arguments
t_irc_channel *ptr_channel;
t_irc_nick *ptr_nick;
char *pos;
/* no host => we can't identify sender of message! */
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
_("%s \"%s\" command received without host\n"),
WEECHAT_ERROR, "join");
return -1;
}
if (arguments[0] == ':')
arguments++;
@@ -665,8 +675,8 @@ irc_recv_cmd_kill (t_irc_server *server, char *host, char *nick, char *arguments
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
_("%s host \"%s\" not found for \"%s\" command\n"),
WEECHAT_ERROR, "", "kill");
_("%s host not found for \"%s\" command\n"),
WEECHAT_ERROR, "kill");
return -1;
}
return 0;
@@ -683,7 +693,7 @@ irc_recv_cmd_mode (t_irc_server *server, char *host, char *nick, char *arguments
t_irc_channel *ptr_channel;
/* no host => we can't identify sender of message! */
if (host == NULL)
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
@@ -784,7 +794,7 @@ irc_recv_cmd_nick (t_irc_server *server, char *host, char *nick, char *arguments
t_gui_buffer *ptr_buffer;
/* no host => we can't identify sender of message! */
if (host == NULL)
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
@@ -1323,7 +1333,7 @@ irc_recv_cmd_privmsg (t_irc_server *server, char *host, char *nick, char *argume
int highlight;
/* no host => we can't identify sender of message! */
if (host == NULL)
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
@@ -2094,7 +2104,7 @@ irc_recv_cmd_quit (t_irc_server *server, char *host, char *nick, char *arguments
t_irc_nick *ptr_nick;
/* no host => we can't identify sender of message! */
if (host == NULL)
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
@@ -3494,7 +3504,6 @@ irc_recv_cmd_329 (t_irc_server *server, char *host, char *nick, char *arguments)
time_t datetime;
/* make C compiler happy */
(void) host;
(void) nick;
pos_channel = strchr (arguments, ' ');
@@ -3622,7 +3631,6 @@ irc_recv_cmd_332 (t_irc_server *server, char *host, char *nick, char *arguments)
t_gui_buffer *ptr_buffer;
/* make C compiler happy */
(void) host;
(void) nick;
pos = strchr (arguments, ' ');
@@ -3688,7 +3696,6 @@ irc_recv_cmd_333 (t_irc_server *server, char *host, char *nick, char *arguments)
time_t datetime;
/* make C compiler happy */
(void) host;
(void) nick;
pos_channel = strchr (arguments, ' ');
@@ -4325,7 +4332,6 @@ irc_recv_cmd_353 (t_irc_server *server, char *host, char *nick, char *arguments)
t_gui_buffer *ptr_buffer;
/* make C compiler happy */
(void) host;
(void) nick;
pos = strstr (arguments, " = ");
+2 -1
View File
@@ -1,10 +1,11 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2007-05-11
ChangeLog - 2007-05-18
Version 0.2.5 (under dev!):
* fixed crash with IRC JOIN malformed message (bug #19891)
* fixed bug with nick prefixes on some IRC servers (bug #19854)
* improved setup file save: now writes temporary file, then rename it
(task #6847)
+3 -3
View File
@@ -388,7 +388,7 @@
<entry>couleur</entry>
<entry>couleur Curses ou Gtk</entry>
<entry>'cyan'</entry>
<entry>Couleur pour les noms de machines (fenêtre de discussion)</entry>
<entry>Couleur pour les hôtes (fenêtre de discussion)</entry>
</row>
<row>
<entry><option>col_chat_channel</option></entry>
@@ -1039,7 +1039,7 @@
<entry>booléen</entry>
<entry>'on' ou 'off'</entry>
<entry>'on'</entry>
<entry>Continuer automatiquement les transferts dcc si la connexion avec la machine distante a été perdue</entry>
<entry>Continuer automatiquement les transferts dcc si la connexion avec l'hôte a été perdue</entry>
</row>
<row>
<entry><option>proxy_use</option></entry>
@@ -1067,7 +1067,7 @@
<entry>chaîne</entry>
<entry>toute chaîne</entry>
<entry>''</entry>
<entry>Adresse du serveur proxy (IP ou nom)</entry>
<entry>Adresse du serveur proxy (IP ou nom de machine)</entry>
</row>
<row>
<entry><option>proxy_port</option></entry>
+4 -4
View File
@@ -36,10 +36,10 @@ message: message pour l'absence (si pas de message donn
</programlisting>
<command>ban [canal] [pseudo [pseudo ...]]</command>
<programlisting>
bannit des pseudos ou masques
bannit des pseudos ou hôtes
canal: nom du canal pour le bannissement
pseudo: pseudo ou masque pour le bannissement
pseudo: pseudo ou hôte pour le bannissement
</programlisting>
<command>ctcp cible type [arguments]</command>
@@ -376,10 +376,10 @@ cible: serveur
</programlisting>
<command>unban [canal] pseudo [pseudo ...]</command>
<programlisting>
supprime le bannissement sur des pseudos ou masques
supprime le bannissement sur des pseudos ou hôtes
canal: nom du canal pour supprimer le bannissement
pseudo: pseudo ou masque pour supprimer le bannissement
pseudo: pseudo ou hôte pour supprimer le bannissement
</programlisting>
<command>userhost pseudo [pseudo ...]</command>
+4 -4
View File
@@ -99,9 +99,9 @@ valeur: nombre d'entr
</programlisting>
<command>ignore [masque [[type | commande] [canal [serveur]]]]</command>
<programlisting>
ignorer des messages IRC et/ou des masques
ignorer des messages IRC et/ou des hôtes
masque: pseudo ou masque à ignorer
masque: pseudo ou hôte à ignorer
type: type de message à ignorer (action, ctcp, dcc, pv)
commande: commande IRC
canal: nom du canal pour le ignore
@@ -197,10 +197,10 @@ nom_alias: nom de l'alias
</programlisting>
<command>unignore [nombre | [masque [[type | commande] [canal [serveur]]]]]</command>
<programlisting>
supprimer le ignore des messages IRC et/ou des masques
supprimer le ignore des messages IRC et/ou des hôtes
nombre: numéro de ignore à supprimer (le nombre est affiché sur la liste des ignore)
masque: pseudo ou masque à ignorer
masque: pseudo ou hôte à ignorer
type: type de message à ignorer (action, ctcp, dcc, pv)
commande: commande IRC
canal: nom du canal pour le ignore
+213 -213
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+217 -217
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+213 -213
View File
File diff suppressed because it is too large Load Diff
+17 -11
View File
@@ -446,7 +446,17 @@ irc_recv_cmd_join (t_irc_server *server, char *host, char *nick, char *arguments
t_irc_channel *ptr_channel;
t_irc_nick *ptr_nick;
char *pos;
/* no host => we can't identify sender of message! */
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
_("%s \"%s\" command received without host\n"),
WEECHAT_ERROR, "join");
return -1;
}
if (arguments[0] == ':')
arguments++;
@@ -665,8 +675,8 @@ irc_recv_cmd_kill (t_irc_server *server, char *host, char *nick, char *arguments
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
_("%s host \"%s\" not found for \"%s\" command\n"),
WEECHAT_ERROR, "", "kill");
_("%s host not found for \"%s\" command\n"),
WEECHAT_ERROR, "kill");
return -1;
}
return 0;
@@ -683,7 +693,7 @@ irc_recv_cmd_mode (t_irc_server *server, char *host, char *nick, char *arguments
t_irc_channel *ptr_channel;
/* no host => we can't identify sender of message! */
if (host == NULL)
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
@@ -784,7 +794,7 @@ irc_recv_cmd_nick (t_irc_server *server, char *host, char *nick, char *arguments
t_gui_buffer *ptr_buffer;
/* no host => we can't identify sender of message! */
if (host == NULL)
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
@@ -1323,7 +1333,7 @@ irc_recv_cmd_privmsg (t_irc_server *server, char *host, char *nick, char *argume
int highlight;
/* no host => we can't identify sender of message! */
if (host == NULL)
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
@@ -2094,7 +2104,7 @@ irc_recv_cmd_quit (t_irc_server *server, char *host, char *nick, char *arguments
t_irc_nick *ptr_nick;
/* no host => we can't identify sender of message! */
if (host == NULL)
if (!host)
{
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
@@ -3494,7 +3504,6 @@ irc_recv_cmd_329 (t_irc_server *server, char *host, char *nick, char *arguments)
time_t datetime;
/* make C compiler happy */
(void) host;
(void) nick;
pos_channel = strchr (arguments, ' ');
@@ -3622,7 +3631,6 @@ irc_recv_cmd_332 (t_irc_server *server, char *host, char *nick, char *arguments)
t_gui_buffer *ptr_buffer;
/* make C compiler happy */
(void) host;
(void) nick;
pos = strchr (arguments, ' ');
@@ -3688,7 +3696,6 @@ irc_recv_cmd_333 (t_irc_server *server, char *host, char *nick, char *arguments)
time_t datetime;
/* make C compiler happy */
(void) host;
(void) nick;
pos_channel = strchr (arguments, ' ');
@@ -4325,7 +4332,6 @@ irc_recv_cmd_353 (t_irc_server *server, char *host, char *nick, char *arguments)
t_gui_buffer *ptr_buffer;
/* make C compiler happy */
(void) host;
(void) nick;
pos = strstr (arguments, " = ");