密猟オンラインサーバープログラム
ユーザー名と動物名にコントロール文字、空白、カンマが含まれていたら
アンダーバーに置き換えるようにした
| @@ -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 | { |