Browse Source

Null symbol crash fixed

etomic
jl777 7 years ago
parent
commit
9db4d96d08
  1. 16
      iguana/exchanges/LP_coins.c
  2. 9
      iguana/exchanges/LP_commands.c

16
iguana/exchanges/LP_coins.c

@ -23,9 +23,12 @@ char *portstrs[][3] = { { "BTC", "8332" }, { "KMD", "7771" } };
uint16_t LP_rpcport(char *symbol) uint16_t LP_rpcport(char *symbol)
{ {
int32_t i; int32_t i;
if ( symbol != 0 && symbol[0] != 0 )
{
for (i=0; i<sizeof(portstrs)/sizeof(*portstrs); i++) for (i=0; i<sizeof(portstrs)/sizeof(*portstrs); i++)
if ( strcmp(portstrs[i][0],symbol) == 0 ) if ( strcmp(portstrs[i][0],symbol) == 0 )
return(atoi(portstrs[i][1])); return(atoi(portstrs[i][1]));
}
return(0); return(0);
} }
@ -231,6 +234,8 @@ cJSON *LP_coinjson(struct iguana_info *coin,int32_t showwif)
struct iguana_info *LP_conflicts_find(struct iguana_info *refcoin) struct iguana_info *LP_conflicts_find(struct iguana_info *refcoin)
{ {
struct iguana_info *coin=0,*tmp; struct iguana_info *coin=0,*tmp;
if ( refcoin != 0 )
{
HASH_ITER(hh,LP_coins,coin,tmp) HASH_ITER(hh,LP_coins,coin,tmp)
{ {
if ( coin->inactive != 0 || coin->electrum != 0 || coin == refcoin ) if ( coin->inactive != 0 || coin->electrum != 0 || coin == refcoin )
@ -238,6 +243,7 @@ struct iguana_info *LP_conflicts_find(struct iguana_info *refcoin)
if ( strcmp(coin->serverport,refcoin->serverport) == 0 ) if ( strcmp(coin->serverport,refcoin->serverport) == 0 )
break; break;
} }
}
return(coin); return(coin);
} }
@ -254,8 +260,10 @@ cJSON *LP_coinsjson(int32_t showwif)
char *LP_getcoin(char *symbol) char *LP_getcoin(char *symbol)
{ {
int32_t numenabled,numdisabled; struct iguana_info *coin,*tmp; cJSON *item=0,*retjson; int32_t numenabled,numdisabled; struct iguana_info *coin,*tmp; cJSON *item=0,*retjson;
numenabled = numdisabled = 0;
retjson = cJSON_CreateObject(); retjson = cJSON_CreateObject();
if ( symbol != 0 && symbol[0] != 0 )
{
numenabled = numdisabled = 0;
HASH_ITER(hh,LP_coins,coin,tmp) HASH_ITER(hh,LP_coins,coin,tmp)
{ {
if ( strcmp(symbol,coin->symbol) == 0 ) if ( strcmp(symbol,coin->symbol) == 0 )
@ -270,15 +278,19 @@ char *LP_getcoin(char *symbol)
if ( item == 0 ) if ( item == 0 )
item = cJSON_CreateObject(); item = cJSON_CreateObject();
jadd(retjson,"coin",item); jadd(retjson,"coin",item);
}
return(jprint(retjson,1)); return(jprint(retjson,1));
} }
struct iguana_info *LP_coinsearch(char *symbol) struct iguana_info *LP_coinsearch(char *symbol)
{ {
struct iguana_info *coin; struct iguana_info *coin = 0;
if ( symbol != 0 && symbol[0] != 0 )
{
portable_mutex_lock(&LP_coinmutex); portable_mutex_lock(&LP_coinmutex);
HASH_FIND(hh,LP_coins,symbol,strlen(symbol),coin); HASH_FIND(hh,LP_coins,symbol,strlen(symbol),coin);
portable_mutex_unlock(&LP_coinmutex); portable_mutex_unlock(&LP_coinmutex);
}
return(coin); return(coin);
} }

9
iguana/exchanges/LP_commands.c

@ -153,9 +153,12 @@ bot_resume(botid)\n\
\"}")); \"}"));
//sell(base, rel, price, basevolume, timeout=10, duration=3600)\n\ //sell(base, rel, price, basevolume, timeout=10, duration=3600)\n\
base = jstr(argjson,"base"); if ( (base= jstr(argjson,"base")) == 0 )
rel = jstr(argjson,"rel"); base = "";
coin = jstr(argjson,"coin"); if ((rel= jstr(argjson,"rel")) == 0 )
rel = "";
if ( (coin= jstr(argjson,"coin")) == 0 )
coin = "";
if ( G.USERPASS[0] != 0 && strcmp(remoteaddr,"127.0.0.1") == 0 && port != 0 ) // protected localhost if ( G.USERPASS[0] != 0 && strcmp(remoteaddr,"127.0.0.1") == 0 && port != 0 ) // protected localhost
{ {
if ( G.USERPASS_COUNTER == 0 ) if ( G.USERPASS_COUNTER == 0 )

Loading…
Cancel
Save