1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-11-26 22:13:26 +01:00

don't allow newlines and tabs in nicks

This commit is contained in:
Jfreegman 2014-10-07 00:43:03 -04:00
parent 6492bd12f9
commit 1f2bd44dce
No known key found for this signature in database
GPG Key ID: 3627F3144076AE63
2 changed files with 12 additions and 8 deletions

View File

@ -188,7 +188,8 @@ int qsort_strcasecmp_hlpr(const void *str1, const void *str2)
- cannot be empty - cannot be empty
- cannot start with a space - cannot start with a space
- must not contain a forward slash (for logfile naming purposes) - must not contain a forward slash (for logfile naming purposes)
- must not contain contiguous spaces */ - must not contain contiguous spaces
- must not contain a newline or tab seqeunce */
int valid_nick(const char *nick) int valid_nick(const char *nick)
{ {
if (!nick[0] || nick[0] == ' ') if (!nick[0] || nick[0] == ' ')
@ -197,23 +198,25 @@ int valid_nick(const char *nick)
int i; int i;
for (i = 0; nick[i]; ++i) { for (i = 0; nick[i]; ++i) {
if (nick[i] == ' ' && nick[i + 1] == ' ') if ((nick[i] == ' ' && nick[i + 1] == ' ')
return 0; || nick[i] == '/'
|| nick[i] == '\n'
|| nick[i] == '\t'
|| nick[i] == '\r')
if (nick[i] == '/')
return 0; return 0;
} }
return 1; return 1;
} }
/* Converts all newline chars to spaces (use for strings that should be contained to a single line) */ /* Converts all newline/tab chars to spaces (use for strings that should be contained to a single line) */
void escape_newline_str(char *str, int len) void escape_newline_str(char *str, int len)
{ {
int i; int i;
for (i = 0; i < len; ++i) { for (i = 0; i < len; ++i) {
if (str[i] == '\n' || str[i] == '\r') if (str[i] == '\n' || str[i] == '\r' || str[i] == '\t')
str[i] = ' '; str[i] = ' ';
} }
} }

View File

@ -87,10 +87,11 @@ int qsort_strcasecmp_hlpr(const void *str1, const void *str2);
- cannot be empty - cannot be empty
- cannot start with a space - cannot start with a space
- must not contain a forward slash (for logfile naming purposes) - must not contain a forward slash (for logfile naming purposes)
- must not contain contiguous spaces */ - must not contain contiguous spaces
- must not contain a newline or tab seqeunce */
int valid_nick(const char *nick); int valid_nick(const char *nick);
/* Converts all newline chars to spaces (use for strings that should be contained to a single line) */ /* Converts all newline/tab chars to spaces (use for strings that should be contained to a single line) */
void escape_newline_str(char *str, int len); void escape_newline_str(char *str, int len);
/* gets base file name from path or original file name if no path is supplied */ /* gets base file name from path or original file name if no path is supplied */