sscanf warning: String buffer overflow.
#1

Код:
COMMAND:ac(playerid, params[])
{
	new textt[64];

	if(PlayerInfo[playerid][AdminLevel] < FIRST) return 0;

	if(sscanf(params, "s[64]", textt)) return SendClientMessage(playerid, -1, "{6461F3}» /ac <text>");

	if(strlen(params) > 64) return SendClientMessage(playerid, -1, "{ff0000}• Too long!");

	format(String, sizeof(String), "{A5FFA5}ADMIN CHAT | %s(%d): %s", GetPlayerNameEx(playerid), playerid, textt);
	SendMessageToAdmins(String);

	return 1;
}
Reply
#2

sscanf already has built-in length checking.

You could try doing:

pawn Код:
COMMAND:ac(playerid, params[])
{
    if(PlayerInfo[playerid][AdminLevel] < FIRST) return 0;

    if(isnull(params)) return SendClientMessage(playerid, -1, "{6461F3}» /ac <text>");

    if(strlen(params) > 64) return SendClientMessage(playerid, -1, "{ff0000}• Too long!");

    format(String, sizeof(String), "{A5FFA5}ADMIN CHAT | %s(%d): %s", GetPlayerNameEx(playerid), playerid, params);
    SendMessageToAdmins(String);

    return 1;
}
Reply
#3

Thanks a lot!
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)