0.3.0_alpha4941: Bugs

Help test release candidates for the next release
User avatar
Z-Man
God & Project Admin
Posts: 11223
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Fri Jun 23, 2006 7:35 am

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?

User avatar
joda.bot
Match Winner
Posts: 421
Joined: Sun Jun 20, 2004 11:00 am
Location: Germany
Contact:

Post by joda.bot » Fri Jun 23, 2006 5:04 pm

I fixed a major menu based crash. I messed something up there ;)

If you have been at the end of a menu and pressed downwards once more, the game crashed that's fixed now.

I also assume that the missing characters are FTGL related, I'll try to look for a bug inside the DLL on windows.

User avatar
wrtlprnft
Reverse Outside Corner Grinder
Posts: 1679
Joined: Wed Jan 04, 2006 4:42 am
Location: 0x08048000
Contact:

Post by wrtlprnft » Fri Jun 23, 2006 6:15 pm

joda.bot wrote:I also assume that the missing characters are FTGL related...
Can't be, ghableska reports the bug also occurs with 0.2.8.2, so this might be a major screwup.
There's no place like ::1

User avatar
Z-Man
God & Project Admin
Posts: 11223
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Fri Jun 23, 2006 9:31 pm

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?


User avatar
joda.bot
Match Winner
Posts: 421
Joined: Sun Jun 20, 2004 11:00 am
Location: Germany
Contact:

Post by joda.bot » Sat Jun 24, 2006 10:18 am

I guess it could also depend on the language / basic code page the windows OS uses ?

User avatar
joda.bot
Match Winner
Posts: 421
Joined: Sun Jun 20, 2004 11:00 am
Location: Germany
Contact:

Post by joda.bot » Sat Jun 24, 2006 10:19 am

wops

User avatar
Z-Man
God & Project Admin
Posts: 11223
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Sat Jun 24, 2006 11:30 am

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 setting

Code: Select all

FILTER_NAME_ENDS 0
in 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().

User avatar
Z-Man
God & Project Admin
Posts: 11223
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Sat Jun 24, 2006 12:17 pm

Err, got to be aware that isblank() doesn't know that line feed is whitespace.

User avatar
wrtlprnft
Reverse Outside Corner Grinder
Posts: 1679
Joined: Wed Jan 04, 2006 4:42 am
Location: 0x08048000
Contact:

Post by wrtlprnft » Sat Jun 24, 2006 3:18 pm

I'd recommend the following to not have to replace anything:

Code: Select all

namespace myisspace {
    inline bool isspace(char arg) {
        return(isblank(arg) || arg == '\n' || arg == '\r');
    }
}
using myisspace::isspace;
Put that into some header that's included from everywhere and everything will use that function :)
There's no place like ::1

Post Reply