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

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)

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>

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>

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

426
po/cs.po

File diff suppressed because it is too large Load Diff

426
po/de.po

File diff suppressed because it is too large Load Diff

426
po/es.po

File diff suppressed because it is too large Load Diff

434
po/fr.po

File diff suppressed because it is too large Load Diff

426
po/hu.po

File diff suppressed because it is too large Load Diff

426
po/ru.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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, " = ");

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)

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>

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>

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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, " = ");