[Ajuda] String buffer overflow
#1

pawn Код:
[20:41:48] sscanf warning: Strings without a length are deprecated, please add a destination size.
[20:42:33] sscanf warning: Strings without a length are deprecated, please add a destination size.
[20:42:33] sscanf warning: String buffer overflow.
Esse aviso no console acontece ao usar o comando:
pawn Код:
CMD:ca(playerid, params[])
{
    new texto[128];
    if(pAdmin[playerid][Level] < 1) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    if(sscanf(params, "s", texto)) return SendClientMessage(playerid, Vermelho, "[ERRO] Use: /ca MENSAGEM");
    GetPlayerName(playerid, Jogador, 23);
    format(Celula, sizeof(Celula), "[C-ADMIN] %s( %d ): %s", Jogador, playerid, texto);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {

        if(pAdmin[playerid][Level] >=1)
        SendClientMessage(i, Cor_Admin, Celula);
    }
    return 1;
}
O que tem de errado?
Reply
#2

Quote:
Originally Posted by Feelipe
Посмотреть сообщение
pawn Код:
[20:41:48] sscanf warning: Strings without a length are deprecated, please add a destination size.
[20:42:33] sscanf warning: Strings without a length are deprecated, please add a destination size.
[20:42:33] sscanf warning: String buffer overflow.
Esse aviso no console acontece ao usar o comando:
pawn Код:
CMD:ca(playerid, params[])
{
    new texto[128];
    if(pAdmin[playerid][Level] < 1) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    if(sscanf(params, "s", texto)) return SendClientMessage(playerid, Vermelho, "[ERRO] Use: /ca MENSAGEM");
    GetPlayerName(playerid, Jogador, 23);
    format(Celula, sizeof(Celula), "[C-ADMIN] %s( %d ): %s", Jogador, playerid, texto);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {

        if(pAdmin[playerid][Level] >=1)
        SendClientMessage(i, Cor_Admin, Celula);
    }
    return 1;
}
O que tem de errado?
pawn Код:
CMD:ca(playerid, params[])
{
    new texto[128];
    if(pAdmin[playerid][Level] < 1) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    if(sscanf(params, "s[128]", texto)) return SendClientMessage(playerid, Vermelho, "[ERRO] Use: /ca MENSAGEM");
    GetPlayerName(playerid, Jogador, 23);
    format(Celula, sizeof(Celula), "[C-ADMIN] %s( %d ): %s", Jogador, playerid, texto);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {

        if(pAdmin[playerid][Level] >=1)
        SendClientMessage(i, Cor_Admin, Celula);
    }
    return 1;
}
vocк precisa definir o tamanho da string no sscanf no caso a mesagem vai ter limite de 128 caracteres
Reply
#3

Quote:
Originally Posted by HoodScript
Посмотреть сообщение
pawn Код:
CMD:ca(playerid, params[])
{
    new texto[128];
    if(pAdmin[playerid][Level] < 1) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    if(sscanf(params, "s[128]", texto)) return SendClientMessage(playerid, Vermelho, "[ERRO] Use: /ca MENSAGEM");
    GetPlayerName(playerid, Jogador, 23);
    format(Celula, sizeof(Celula), "[C-ADMIN] %s( %d ): %s", Jogador, playerid, texto);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {

        if(pAdmin[playerid][Level] >=1)
        SendClientMessage(i, Cor_Admin, Celula);
    }
    return 1;
}
vocк precisa definir o tamanho da string no sscanf no caso a mesagem vai ter limite de 128 caracteres
Iria morrer e nгo conseguiria identificar, obrigado por ensinar ;-;
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)