0.3.0_alpha4941: Bugs
Ok, if it is Windows only, that means it's a clientside error There is name filtering that eliminates stuff from the ends of names, but it should only be active server side and only remove whitespace and some selected characters, and it shouldn't affect the score table. Someone will have to debug it. I'll be on it as soon as I build the next alpha, it may be security critical.
Your_mom: could you elaborate on that spawn bug?
Your_mom: could you elaborate on that spawn bug?
Sorry, I can't reproduce the character problem here in Windows 2000. Maybe it is also Windows version dependant, and depends on who knows what? I tried 0.2.8.2, current 0.2.8 branch and 0.3.0 branch code to no avail. Could I get a good recording? I'd need someone
- state his exact Windows version with service pack status
- Install AA version 0.2.8.2 (which seems to be affected and would be the best point to start working on a fix) into C:\Armagetronad just to make sure it doesn't depend on the installation path
- Do a short recording showcasing the bug?
- state his exact Windows version with service pack status
- Install AA version 0.2.8.2 (which seems to be affected and would be the best point to start working on a fix) into C:\Armagetronad just to make sure it doesn't depend on the installation path
- Do a short recording showcasing the bug?
Yes, that theory is likely to be correct. There are two things that can be considered bugs here:
1. The name filtering code is called on the client
2. The name filtering code checks for whitespace with isspace(), which is locale dependant.
Both changes have been introduced sometime between 0.2.7.1 and 0.2.8.2. The good news is that this is not a security hole, and it can be worked around by settingin settings.cfg. So there is no need for an emergency fix.
The chat lines and messages get formatted on the server, so there the extra filtering is not applied.
About 1: I suggest the client should not do player name filtering, except for color codes.
About 2: Our character set is the same for everyone, it does not make sense to use locale dependant functions at all. I'll replace all isspace() calls with isblank().
1. The name filtering code is called on the client
2. The name filtering code checks for whitespace with isspace(), which is locale dependant.
Both changes have been introduced sometime between 0.2.7.1 and 0.2.8.2. The good news is that this is not a security hole, and it can be worked around by setting
Code: Select all
FILTER_NAME_ENDS 0
The chat lines and messages get formatted on the server, so there the extra filtering is not applied.
About 1: I suggest the client should not do player name filtering, except for color codes.
About 2: Our character set is the same for everyone, it does not make sense to use locale dependant functions at all. I'll replace all isspace() calls with isblank().
- wrtlprnft
- Reverse Outside Corner Grinder
- Posts: 1679
- Joined: Wed Jan 04, 2006 4:42 am
- Location: 0x08048000
- Contact:
I'd recommend the following to not have to replace anything:Put that into some header that's included from everywhere and everything will use that function
Code: Select all
namespace myisspace {
inline bool isspace(char arg) {
return(isblank(arg) || arg == '\n' || arg == '\r');
}
}
using myisspace::isspace;
There's no place like ::1