1
0
mirror of https://github.com/osmarks/ngircd.git synced 2025-12-31 01:29:06 +00:00

Compare commits

...

5 Commits

Author SHA1 Message Date
Alexander Barton
35d1c2fc06 - fehlende $Id$-Tags ergaenzt. 2002-10-04 13:12:46 +00:00
Alexander Barton
c557a2920e - Versionsnummer auf 0.5.2 angehoben. 2002-10-04 12:47:14 +00:00
Alexander Barton
845b295e7d - Dokumentation aktualisiert. 2002-10-04 12:43:53 +00:00
Alexander Barton
59b5b0e025 - aus HEAD: der Buffer fuer das Prefix war zu klein. 2002-10-04 12:40:58 +00:00
Alexander Barton
bdd23ece63 - Backports aus HEAD: Format-String- und Buffer-Overflow-Bugs behoben,
die zum Abbruch des Servers fuehren konnten.
2002-10-04 11:31:28 +00:00
13 changed files with 50 additions and 41 deletions

View File

@@ -10,6 +10,12 @@
-- ChangeLog / Aenderungen --
ngIRCd 0.5.2, 04.10.2002
- Buffer Overflow in Read_Resolver_Result() behoben.
- Format-String-Bugs, die zum Abbruch des Servers fuehrten, behoben.
- Maximale Laenge eines IRC-Prefix wurde falsch berechnet.
ngIRCd 0.5.1, 03.10.2002
- in RPL_YOURHOST_MSG wurde ein fehlerhafter Versionsstring geliefert.
@@ -278,4 +284,4 @@ ngIRCd 0.0.1, 31.12.2001
--
$Id: ChangeLog,v 1.87.2.9 2002/10/03 17:08:53 alex Exp $
$Id: ChangeLog,v 1.87.2.10 2002/10/04 12:43:53 alex Exp $

View File

@@ -9,7 +9,7 @@
# Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
# der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
#
# $Id: configure.in,v 1.58.2.4 2002/10/03 16:10:25 alex Exp $
# $Id: configure.in,v 1.58.2.6 2002/10/04 12:47:14 alex Exp $
#
# -- Initialisierung --
@@ -18,7 +18,7 @@ AC_INIT
AC_PREREQ(2.50)
AC_CANONICAL_TARGET
AC_CONFIG_SRCDIR(src/config.h.in)
AM_INIT_AUTOMAKE(ngircd,0.5.1)
AM_INIT_AUTOMAKE(ngircd,0.5.2)
AM_CONFIG_HEADER(src/config.h)
# -- Templates fuer config.h --

View File

@@ -1,5 +1,5 @@
%define name ngircd
%define version 0.5.1
%define version 0.5.2
%define release 1
%define prefix %{_prefix}

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: client.c,v 1.60 2002/09/03 18:54:31 alex Exp $
* $Id: client.c,v 1.60.2.1 2002/10/04 12:40:58 alex Exp $
*
* client.c: Management aller Clients
*
@@ -53,8 +53,11 @@
#include <exp.h>
#define GETID_LEN (CLIENT_NICK_LEN-1) + 1 + (CLIENT_USER_LEN-1) + 1 + (CLIENT_HOST_LEN-1) + 1
LOCAL CLIENT *This_Server, *My_Clients;
LOCAL CHAR GetID_Buffer[CLIENT_ID_LEN];
LOCAL CHAR GetID_Buffer[GETID_LEN];
LOCAL INT Count PARAMS(( CLIENT_TYPE Type ));
@@ -713,7 +716,7 @@ Client_Mask( CLIENT *Client )
if( Client->type == CLIENT_SERVER ) return Client->id;
sprintf( GetID_Buffer, "%s!%s@%s", Client->id, Client->user, Client->host );
snprintf( GetID_Buffer, GETID_LEN, "%s!%s@%s", Client->id, Client->user, Client->host );
return GetID_Buffer;
} /* Client_Mask */

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: conf.c,v 1.29.2.1 2002/09/19 10:17:50 alex Exp $
* $Id: conf.c,v 1.29.2.3 2002/10/04 13:12:46 alex Exp $
*
* conf.h: Konfiguration des ngircd
*/
@@ -67,7 +67,7 @@ Conf_Test( VOID )
{
/* Konfiguration einlesen, ueberpruefen und ausgeben. */
UINT i;
INT i;
Use_Log = FALSE;
Set_Defaults( );
@@ -584,7 +584,7 @@ va_dcl
/* Im "normalen Betrieb" soll der Log-Mechanismus des ngIRCd verwendet
* werden, beim Testen der Konfiguration jedoch nicht, hier sollen alle
* Meldungen direkt auf die Konsole ausgegeben werden: */
if( Use_Log ) Log( Level, msg );
if( Use_Log ) Log( Level, "%s", msg );
else puts( msg );
} /* Config_Error */

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: conn.c,v 1.72.2.1 2002/10/03 16:13:38 alex Exp $
* $Id: conn.c,v 1.72.2.3 2002/10/04 13:12:46 alex Exp $
*
* connect.h: Verwaltung aller Netz-Verbindungen ("connections")
*/
@@ -1133,7 +1133,7 @@ Read_Resolver_Result( INT r_fd )
FD_CLR( r_fd, &Resolver_FDs );
/* Anfrage vom Parent lesen */
len = read( r_fd, result, HOST_LEN);
len = read( r_fd, result, HOST_LEN - 1 );
if( len < 0 )
{
/* Fehler beim Lesen aus der Pipe */

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: irc-server.c,v 1.17 2002/09/07 17:57:31 alex Exp $
* $Id: irc-server.c,v 1.17.2.2 2002/10/04 13:12:46 alex Exp $
*
* irc-server.c: IRC-Befehle fuer Server-Links
*/
@@ -188,7 +188,7 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req )
if( strlen( str ) > ( LINE_LEN - CLIENT_NICK_LEN - 8 ))
{
/* Zeile senden */
if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
sprintf( str, "NJOIN %s :", Channel_Name( chan ));
}
@@ -199,7 +199,7 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req )
if( str[strlen( str ) - 1] != ':')
{
/* Ja; Also senden ... */
if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
}
/* naechsten Channel suchen */

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: irc-write.c,v 1.7.2.1 2002/09/17 17:29:20 alex Exp $
* $Id: irc-write.c,v 1.7.2.3 2002/10/04 13:12:46 alex Exp $
*
* irc-write.c: IRC-Texte und Befehle ueber Netzwerk versenden
*/
@@ -62,7 +62,7 @@ va_dcl
va_end( ap );
/* an den Client selber */
ok = IRC_WriteStrClientPrefix( Client, Client_ThisServer( ), buffer );
ok = IRC_WriteStrClientPrefix( Client, Client_ThisServer( ), "%s", buffer );
return ok;
} /* IRC_WriteStrClient */
@@ -128,7 +128,7 @@ va_dcl
vsnprintf( buffer, 1000, Format, ap );
va_end( ap );
return IRC_WriteStrChannelPrefix( Client, Chan, Client_ThisServer( ), Remote, buffer );
return IRC_WriteStrChannelPrefix( Client, Chan, Client_ThisServer( ), Remote, "%s", buffer );
} /* IRC_WriteStrChannel */
@@ -233,7 +233,7 @@ va_dcl
va_end( ap );
/* an den Client selber */
IRC_WriteStrServersPrefix( ExceptOf, Client_ThisServer( ), buffer );
IRC_WriteStrServersPrefix( ExceptOf, Client_ThisServer( ), "%s", buffer );
} /* IRC_WriteStrServers */
@@ -263,7 +263,7 @@ va_dcl
vsnprintf( buffer, 1000, Format, ap );
va_end( ap );
IRC_WriteStrServersPrefixFlag( ExceptOf, Prefix, '\0', buffer );
IRC_WriteStrServersPrefixFlag( ExceptOf, Prefix, '\0', "%s", buffer );
} /* IRC_WriteStrServersPrefix */
@@ -301,7 +301,7 @@ va_dcl
if(( Client_Type( c ) == CLIENT_SERVER ) && ( Client_Conn( c ) > NONE ) && ( c != Client_ThisServer( )) && ( c != ExceptOf ))
{
/* Ziel-Server gefunden. Nun noch pruefen, ob Flags stimmen */
if(( Flag == '\0' ) || ( strchr( Client_Flags( c ), Flag ) != NULL )) IRC_WriteStrClientPrefix( c, Prefix, buffer );
if(( Flag == '\0' ) || ( strchr( Client_Flags( c ), Flag ) != NULL )) IRC_WriteStrClientPrefix( c, Prefix, "%s", buffer );
}
c = Client_Next( c );
}

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: irc.c,v 1.95 2002/09/16 09:14:45 alex Exp $
* $Id: irc.c,v 1.95.2.2 2002/10/04 13:12:46 alex Exp $
*
* irc.c: IRC-Befehle
*/
@@ -206,7 +206,7 @@ IRC_NAMES( CLIENT *Client, REQUEST *Req )
if( strlen( rpl ) > ( LINE_LEN - CLIENT_NICK_LEN - 4 ))
{
/* Zeile wird zu lang: senden! */
if( ! IRC_WriteStrClient( from, rpl )) return DISCONNECTED;
if( ! IRC_WriteStrClient( from, "%s", rpl )) return DISCONNECTED;
sprintf( rpl, RPL_NAMREPLY_MSG, Client_ID( from ), "*", "*" );
}
}
@@ -217,7 +217,7 @@ IRC_NAMES( CLIENT *Client, REQUEST *Req )
if( rpl[strlen( rpl ) - 1] != ':')
{
/* es wurden User gefunden */
if( ! IRC_WriteStrClient( from, rpl )) return DISCONNECTED;
if( ! IRC_WriteStrClient( from, "%s", rpl )) return DISCONNECTED;
}
return IRC_WriteStrClient( from, RPL_ENDOFNAMES_MSG, Client_ID( from ), "*" );
@@ -259,7 +259,7 @@ IRC_ISON( CLIENT *Client, REQUEST *Req )
}
if( rpl[strlen( rpl ) - 1] == ' ' ) rpl[strlen( rpl ) - 1] = '\0';
return IRC_WriteStrClient( Client, rpl, Client_ID( Client ) );
return IRC_WriteStrClient( Client, "%s", rpl, Client_ID( Client ) );
} /* IRC_ISON */
@@ -325,7 +325,7 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req )
if( strlen( str ) > ( LINE_LEN - CHANNEL_NAME_LEN - 4 ))
{
/* Zeile wird zu lang: senden! */
if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
sprintf( str, RPL_WHOISCHANNELS_MSG, Client_ID( from ), Client_ID( c ));
}
@@ -335,7 +335,7 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req )
if( str[strlen( str ) - 1] != ':')
{
/* Es sind noch Daten da, die gesendet werden muessen */
if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
}
/* IRC-Operator? */
@@ -477,7 +477,7 @@ IRC_USERHOST( CLIENT *Client, REQUEST *Req )
}
if( rpl[strlen( rpl ) - 1] == ' ' ) rpl[strlen( rpl ) - 1] = '\0';
return IRC_WriteStrClient( Client, rpl, Client_ID( Client ) );
return IRC_WriteStrClient( Client, "%s", rpl, Client_ID( Client ) );
} /* IRC_USERHOST */
@@ -768,7 +768,7 @@ IRC_Send_NAMES( CLIENT *Client, CHANNEL *Chan )
if( strlen( str ) > ( LINE_LEN - CLIENT_NICK_LEN - 4 ))
{
/* Zeile wird zu lang: senden! */
if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
sprintf( str, RPL_NAMREPLY_MSG, Client_ID( Client ), "=", Channel_Name( Chan ));
}
}
@@ -779,7 +779,7 @@ IRC_Send_NAMES( CLIENT *Client, CHANNEL *Chan )
if( str[strlen( str ) - 1] != ':')
{
/* Es sind noch Daten da, die gesendet werden muessen */
if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
}
return CONNECTED;

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: lists.c,v 1.8 2002/09/08 17:06:07 alex Exp $
* $Id: lists.c,v 1.8.2.2 2002/10/04 13:12:46 alex Exp $
*
* lists.c: Verwaltung der "IRC-Listen": Ban, Invite, ...
*/
@@ -317,13 +317,13 @@ GLOBAL CHAR *
Lists_MakeMask( CHAR *Pattern )
{
/* Hier wird aus einem "beliebigen" Pattern eine gueltige IRC-Mask erzeugt.
* Diese ist aber nur bis zum naechsten Aufruf von Lists_MakeMask() gueltig,
* da ein einziger globaler Puffer verwendet wird. ->Umkopieren!*/
* Diese ist aber nur bis zum naechsten Aufruf von Lists_MakeMask() gueltig,
* da ein einziger globaler Puffer verwendet wird. ->Umkopieren!*/
STATIC CHAR TheMask[MASK_LEN];
CHAR *excl, *at;
assert( Pattern );
assert( Pattern != NULL );
excl = strchr( Pattern, '!' );
at = strchr( Pattern, '@' );

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: log.c,v 1.37 2002/09/09 22:55:21 alex Exp $
* $Id: log.c,v 1.37.2.2 2002/10/04 13:12:46 alex Exp $
*
* log.c: Logging-Funktionen
*/
@@ -185,7 +185,7 @@ va_dcl
else
{
/* Syslog */
syslog( Level, msg );
syslog( Level, "%s", msg );
}
#endif

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: ngircd.c,v 1.54 2002/09/07 17:57:17 alex Exp $
* $Id: ngircd.c,v 1.54.2.2 2002/10/04 13:12:46 alex Exp $
*
* ngircd.c: Hier beginnt alles ;-)
*/
@@ -159,7 +159,7 @@ main( int argc, const char *argv[] )
NGIRCd_ConfFile[FNAME_LEN - 1] = '\0';
/* zum uebernaechsten Parameter */
i++; n = strlen( argv[i] );
i++; n = (INT32)strlen( argv[i] );
ok = TRUE;
}
}
@@ -451,7 +451,7 @@ Initialize_Listen_Ports( VOID )
/* Ports, auf denen der Server Verbindungen entgegennehmen
* soll, initialisieren */
UINT created, i;
INT created, i;
created = 0;
for( i = 0; i < Conf_ListenPorts_Count; i++ )

View File

@@ -9,7 +9,7 @@
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
* $Id: parse.c,v 1.41 2002/09/16 09:20:27 alex Exp $
* $Id: parse.c,v 1.41.2.2 2002/10/04 13:12:46 alex Exp $
*
* parse.c: Parsen der Client-Anfragen
*/
@@ -311,7 +311,7 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
else strcat( str, " :" );
strcat( str, Req->argv[i] );
}
return IRC_WriteStrClientPrefix( target, prefix, str );
return IRC_WriteStrClientPrefix( target, prefix, "%s", str );
}
if( strcasecmp( Req->command, "PASS" ) == 0 ) return IRC_PASS( client, Req );