mirror of
https://github.com/osmarks/ngircd.git
synced 2025-01-15 10:05:40 +00:00
- Channel- und Nicknames werden nun ordentlich validiert.
This commit is contained in:
parent
0370c4843f
commit
7157d93651
@ -9,11 +9,14 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: channel.c,v 1.16 2002/02/27 23:23:53 alex Exp $
|
* $Id: channel.c,v 1.17 2002/03/02 01:35:50 alex Exp $
|
||||||
*
|
*
|
||||||
* channel.c: Management der Channels
|
* channel.c: Management der Channels
|
||||||
*
|
*
|
||||||
* $Log: channel.c,v $
|
* $Log: channel.c,v $
|
||||||
|
* Revision 1.17 2002/03/02 01:35:50 alex
|
||||||
|
* - Channel- und Nicknames werden nun ordentlich validiert.
|
||||||
|
*
|
||||||
* Revision 1.16 2002/02/27 23:23:53 alex
|
* Revision 1.16 2002/02/27 23:23:53 alex
|
||||||
* - Includes fuer einige Header bereinigt.
|
* - Includes fuer einige Header bereinigt.
|
||||||
*
|
*
|
||||||
@ -318,9 +321,19 @@ GLOBAL BOOLEAN Channel_IsValidName( CHAR *Name )
|
|||||||
{
|
{
|
||||||
/* PrŸfen, ob Name als Channelname gueltig */
|
/* PrŸfen, ob Name als Channelname gueltig */
|
||||||
|
|
||||||
|
CHAR *ptr, badchars[] = " ,:\x07";
|
||||||
|
|
||||||
assert( Name != NULL );
|
assert( Name != NULL );
|
||||||
|
|
||||||
if(( Name[0] != '#' ) || ( strlen( Name ) >= CHANNEL_NAME_LEN )) return FALSE;
|
if(( Name[0] != '#' ) || ( strlen( Name ) >= CHANNEL_NAME_LEN )) return FALSE;
|
||||||
|
|
||||||
|
ptr = Name;
|
||||||
|
while( *ptr )
|
||||||
|
{
|
||||||
|
if( strchr( badchars, *ptr )) return FALSE;
|
||||||
|
ptr++;
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
} /* Channel_IsValidName */
|
} /* Channel_IsValidName */
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: client.c,v 1.40 2002/02/27 23:23:53 alex Exp $
|
* $Id: client.c,v 1.41 2002/03/02 01:35:50 alex Exp $
|
||||||
*
|
*
|
||||||
* client.c: Management aller Clients
|
* client.c: Management aller Clients
|
||||||
*
|
*
|
||||||
@ -21,6 +21,9 @@
|
|||||||
* Server gewesen, so existiert eine entsprechende CONNECTION-Struktur.
|
* Server gewesen, so existiert eine entsprechende CONNECTION-Struktur.
|
||||||
*
|
*
|
||||||
* $Log: client.c,v $
|
* $Log: client.c,v $
|
||||||
|
* Revision 1.41 2002/03/02 01:35:50 alex
|
||||||
|
* - Channel- und Nicknames werden nun ordentlich validiert.
|
||||||
|
*
|
||||||
* Revision 1.40 2002/02/27 23:23:53 alex
|
* Revision 1.40 2002/02/27 23:23:53 alex
|
||||||
* - Includes fuer einige Header bereinigt.
|
* - Includes fuer einige Header bereinigt.
|
||||||
*
|
*
|
||||||
@ -948,10 +951,22 @@ GLOBAL BOOLEAN Client_IsValidNick( CHAR *Nick )
|
|||||||
{
|
{
|
||||||
/* Ist der Nick gueltig? */
|
/* Ist der Nick gueltig? */
|
||||||
|
|
||||||
|
CHAR *ptr, goodchars[] = ";0123456789";
|
||||||
|
|
||||||
assert( Nick != NULL );
|
assert( Nick != NULL );
|
||||||
|
|
||||||
if( Nick[0] == '#' ) return FALSE;
|
if( Nick[0] == '#' ) return FALSE;
|
||||||
if( strlen( Nick ) > CLIENT_NICK_LEN ) return FALSE;
|
if( strchr( goodchars, Nick[0] )) return FALSE;
|
||||||
|
if( strlen( Nick ) >= CLIENT_NICK_LEN ) return FALSE;
|
||||||
|
|
||||||
|
ptr = Nick;
|
||||||
|
while( *ptr )
|
||||||
|
{
|
||||||
|
if(( *ptr < 'A' ) && ( ! strchr( goodchars, *ptr ))) return FALSE;
|
||||||
|
if(( *ptr > '}' ) && ( ! strchr( goodchars, *ptr ))) return FALSE;
|
||||||
|
ptr++;
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
} /* Client_IsValidNick */
|
} /* Client_IsValidNick */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user