EOSERV Bug Tracker > Bug #427: Account Creation chopping off name beginning

Bug #427: Account Creation chopping off name beginning

Account Creation chopping off name beginning
ID #427
Submitter Ryouken
Product EOSERV
Severity Normal
Status OPEN, NEW
Submitted 4th Sep 2016
Updated 13th Sep 2016
Ryouken Submitter 8 years, 16 weeks ago

I compiled the latest rev and made a new account on it. When it was created it showed the name with the first letter gone. It only seems to do it on some names and not all. I tried one that started with m and another that started with j, and it cut the beginning letter off of those and even saved them to the database that way. My guess is util::lowercase is causing it, since thats the only thing modifying it between grabbing the packet and saving it's contents to database. I checked to see if the packet was grabbed wrong, but the name showed up fine right after being grabbed, so it's something after that.

Comments

Cirras 8 years, 16 weeks ago

I can tell you right now that this is related to EOSERV's packet sequence protection.

Try disabling that in the config temporarily to see if the problem stops. It should confirm my suspicion.

Cirras 8 years, 16 weeks ago

I believe it's something like the server grabbing a Short from the packet when it should be grabbing a Char.

Ryouken Submitter 8 years, 16 weeks ago

Yeah, that's something I was suspecting at first too, but looking at the packets sent, the short it grabs is correct. I made the server display the account name after being grabbed and it showed fine. It's being messed with after being grabbed. The only thing I can think of is util::lowercase.

Cirras 8 years, 16 weeks ago

If you actually look at that utility function, there's nothing there that should be cutting off a character. Did you try disabling sequence protection in the config?

insomniac 8 years, 16 weeks ago

I've been messing with the new source for quite a while and have not had this issue compiling the build target as mysql. I am wondering if it is related to sqlite and I'm assuming your useing sqlite?

Ryouken Submitter 8 years, 16 weeks ago

Yeah, I'm using sqlite, but it cuts off before any database functions are done. And actually I think cirras might be right, It could be getbreakstring.

Cirras 8 years, 16 weeks ago

Are you using fast account creation?

insomniac 8 years, 16 weeks ago

Well I created 7 accounts jomommama,mikemike,dude,insomniac,jude,zztop,alpha all the accounts were created successful after doing that I was thinking the last thing Cirras mentioned could be a potential cause. I also looked over the util and GetBreakString functions those functions seem fine.I can't think of anything else that would cause this problem besides the things already mentioned in this topic..

Ryouken Submitter 8 years, 16 weeks ago

Oh, I am using fastaccount. I didn't think about that. Sorry @_@

Updated Severity to TRIVIAL

Cirras 8 years, 16 weeks ago

There's a simple solution to this issue.

1.) Declare "double creation_time;" under eoclient.hpp.

2.) Drop a "this->creation_time = 0;" under EOClient::Initialize().

3.) Under the Account_Request handler, insert "this->creation_time = Timer::GetTime() + 120;" directly beneath "reply.AddString("OK");"

4.) Under the Account_Create handler, insert

"bool fast_create = (Timer::GetTime() < this->creation_time);"

5.) Beneath that, insert "if (!fast_create) reader.GetByte();"

______

With minor tweaking, this also makes it very easy to enforce the client's 120 second account creation delay serverside if desired. (You know, without causing improper packet reads and unnecessary typo'd account names in your database...)

All this provided fix will do is identify fast account creations, and make that byte read contingent on it being a normal creation/a short sequence (Above 250something) as opposed to a char (Below 250something).

Couldn't tell you why that is the way it is. Hope this is helpful.

Sausage Developer 8 years, 15 weeks ago

I have reason to believe this is due to fast account creation hacks since I remember having sequence-related issues using one before. I'll look in to more though.

Updated Severity to NORMAL

Add Comment

Please don't post unless you have something relevant to the bug to say.
Do not comment to say "thanks" or "fix this please".

Please log in to add comments. EOSERV Bug Tracker > Bug #427: Account Creation chopping off name beginning