密猟オンラインサーバープログラム
ユーザー名と動物名にコントロール文字、空白、カンマが含まれていたら
アンダーバーに置き換えるようにした
@@ -12,6 +12,7 @@ | ||
12 | 12 | #ifdef USE_FORK |
13 | 13 | #include <sys/wait.h> |
14 | 14 | #endif |
15 | +#include <ctype.h> | |
15 | 16 | #include "ctlsock.h" |
16 | 17 | #include "hunt.h" |
17 | 18 | #include "pktio.h" |
@@ -2168,11 +2169,16 @@ | ||
2168 | 2169 | char work[USERNAME_LEN]; |
2169 | 2170 | for (i = 0; i < USERNAME_LEN; i++) |
2170 | 2171 | { |
2171 | - if (*(pname + i) == '\0') | |
2172 | + char c = *(pname + i); | |
2173 | + if (c == '\0') | |
2172 | 2174 | { |
2173 | 2175 | break; |
2174 | 2176 | } |
2175 | - work[i] = *(pname + i); | |
2177 | + if (c == ' ' || c == ',' || iscntrl ((int) c)) | |
2178 | + { | |
2179 | + c = '_'; | |
2180 | + } | |
2181 | + work[i] = c; | |
2176 | 2182 | } |
2177 | 2183 | for (; i < USERNAME_LEN; i++) |
2178 | 2184 | { |
@@ -6364,7 +6370,12 @@ | ||
6364 | 6370 | int i; |
6365 | 6371 | for (i = 0; i < USERNAME_LEN && *p != '\0'; i++, p++) |
6366 | 6372 | { |
6367 | - Animal[nanimal].name[i] = *p; | |
6373 | + char c = *p; | |
6374 | + if (c == ' ' || c == ',' || iscntrl ((int) c)) | |
6375 | + { | |
6376 | + c = '_'; | |
6377 | + } | |
6378 | + Animal[nanimal].name[i] = c; | |
6368 | 6379 | } |
6369 | 6380 | for (; i < USERNAME_LEN; i++) |
6370 | 6381 | { |