diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2012-10-14 00:45:37 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2012-10-14 00:45:37 +0800 |
commit | 5e7058be8ef54fe86ea7329bb5362bce792db649 (patch) | |
tree | b5265fe5ed4a50fa928fc59111fb9e40c320604c | |
parent | 49ed5e4a02dcd07b1402e528ebcc93dbef647fc9 (diff) | |
download | pttbbs-5e7058be8ef54fe86ea7329bb5362bce792db649.tar pttbbs-5e7058be8ef54fe86ea7329bb5362bce792db649.tar.gz pttbbs-5e7058be8ef54fe86ea7329bb5362bce792db649.tar.bz2 pttbbs-5e7058be8ef54fe86ea7329bb5362bce792db649.tar.lz pttbbs-5e7058be8ef54fe86ea7329bb5362bce792db649.tar.xz pttbbs-5e7058be8ef54fe86ea7329bb5362bce792db649.tar.zst pttbbs-5e7058be8ef54fe86ea7329bb5362bce792db649.zip |
Fix "injecting control chars (Ex, 0x08) by using OFO + reply short message"
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5707 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/mbbsd/talk.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/pttbbs/mbbsd/talk.c b/pttbbs/mbbsd/talk.c index 11fa147c..8c9e019c 100644 --- a/pttbbs/mbbsd/talk.c +++ b/pttbbs/mbbsd/talk.c @@ -679,7 +679,9 @@ my_write2(void) if (!tw->uin) break; - if (ch != '\r' && ch != '\n') { + // TODO(piaip) 這裡很危險。使用者可能趁機亂塞東西進 buf. + // 另外 KEY_UP 之類的是 >0xFF 所以或許我們該徹查一下 isascii 的判斷。 + if ((ch < 0x100 && !isascii(ch)) || isprint(ch)) { msg[0] = ch, msg[1] = 0; } else msg[0] = 0; |