Skip to content

Commit 659bad0

Browse files
authored
Merge pull request #296 from KomodoPlatform/DEX_task_milerius
sync DEX
2 parents 8d4c83d + b0d0db5 commit 659bad0

File tree

1 file changed

+48
-48
lines changed

1 file changed

+48
-48
lines changed

src/cc/dapps/subatomic.c

+48-48
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,15 @@ char *subatomic_checkname(char *tmpstr,struct msginfo *mp,int32_t baserel,char *
102102
{
103103
ptr->isexternal = 1;
104104
//strcpy(ptr->cli,clistr); - banned method.
105-
snprintf(ptr->cli,strlen(clistr),"%s",clistr); //guaranteed to null terminate the string
105+
snprintf(ptr->cli,strlen(clistr) + 1,"%s",clistr); //guaranteed to null terminate the string
106106
fprintf(stderr,"found external coin %s %s %s\n",coin,clistr,ptr->cli); //debug 333
107107
}
108108
}
109109
}
110110
if ( coin[0] == '#' )
111111
{
112-
snprintf(ptr->coinstr,strlen(coin),"%s",coin);
113-
snprintf(ptr->acname,strlen(""),"%s","");
112+
snprintf(ptr->coinstr,strlen(coin) + 1,"%s",coin);
113+
snprintf(ptr->acname,strlen("") + 1,"%s","");
114114
ptr->isfile = 1;
115115
return(coin);
116116
}
@@ -122,32 +122,32 @@ char *subatomic_checkname(char *tmpstr,struct msginfo *mp,int32_t baserel,char *
122122
dpow_tokenregister(ptr->tokenid,0,coin,0);
123123
if ( ptr->tokenid[0] != 0 )
124124
{
125-
snprintf(tmpstr,strlen(coin),"%s",coin);
125+
snprintf(tmpstr,strlen(coin) + 1,"%s",coin);
126126
tmpstr[i] = 0;
127127
//fprintf(stderr,"found a tokenmap %s -> %s %s\n",coin,tmpstr,ptr->tokenid);
128128
ptr->istoken = 1;
129-
snprintf(ptr->acname,strlen(coin),"%s",coin);
130-
snprintf(ptr->coinstr,strlen(""),"%s","");
129+
snprintf(ptr->acname,strlen(coin) + 1,"%s",coin);
130+
snprintf(ptr->coinstr,strlen("") + 1,"%s","");
131131
return(tmpstr);
132132
}
133133
}
134134
if ( ptr->isexternal == 0 )
135135
{
136136
if ( strcmp(coin,"KMD") != 0 )
137137
{
138-
snprintf(ptr->acname,strlen(coin),"%s",coin);
139-
snprintf(ptr->coinstr,strlen(""),"%s","");
138+
snprintf(ptr->acname,strlen(coin) + 1,"%s",coin);
139+
snprintf(ptr->coinstr,strlen("") + 1,"%s","");
140140
}
141141
else
142142
{
143-
snprintf(ptr->coinstr,strlen(coin),"%s",coin);
144-
snprintf(ptr->acname,strlen(""),"%s","");
143+
snprintf(ptr->coinstr,strlen(coin) + 1,"%s",coin);
144+
snprintf(ptr->acname,strlen("") + 1,"%s","");
145145
}
146146
}
147147
else
148148
{
149-
snprintf(ptr->coinstr,strlen(coin),"%s",coin);
150-
snprintf(ptr->acname,strlen(""),"%s","");
149+
snprintf(ptr->coinstr,strlen(coin) + 1,"%s",coin);
150+
snprintf(ptr->acname,strlen("") + 1,"%s","");
151151
}
152152
return(coin);
153153
}
@@ -567,7 +567,7 @@ char *subatomic_hexstr(char *jsonstr)
567567
{
568568
char *hexstr; int32_t i,c,n = (int32_t)strlen(jsonstr);
569569
hexstr = malloc(2*n + 3);
570-
snprintf(hexstr,strlen(jsonstr),"%s",jsonstr);
570+
snprintf(hexstr,strlen(jsonstr) + 1,"%s",jsonstr);
571571
for (i=0; i<n; i++)
572572
{
573573
if ( (c= jsonstr[i]) == '"' )
@@ -617,16 +617,16 @@ cJSON *subatomic_mpjson(struct msginfo *mp)
617617
uint64_t subatomic_orderbook_mpset(struct msginfo *mp,char *basecheck)
618618
{
619619
cJSON *retjson; char *tagA,*tagB,*senderpub,*str,tmpstr[32]; int32_t matches=0; double volA,volB; int64_t txfee=0;
620-
snprintf(mp->base.name,strlen(basecheck),"%s",basecheck);
621-
snprintf(mp->base.coin,strlen(subatomic_checkname(tmpstr,mp,0,basecheck)),"%s",subatomic_checkname(tmpstr,mp,0,basecheck));
620+
snprintf(mp->base.name,strlen(basecheck) + 1,"%s",basecheck);
621+
snprintf(mp->base.coin,strlen(subatomic_checkname(tmpstr,mp,0,basecheck)) + 1,"%s",subatomic_checkname(tmpstr,mp,0,basecheck));
622622
mp->rel.txfee = subatomic_txfee(mp->rel.coin);
623623
if ( (retjson= dpow_get(mp->origid)) != 0 )
624624
{
625625
//fprintf(stderr,"dpow_get.(%s) (%s/%s)\n",jprint(retjson,0),mp->base.coin,mp->rel.coin);
626626
if ( (senderpub= jstr(retjson,"senderpub")) != 0 && is_hexstr(senderpub,0) == 66 && (tagA= jstr(retjson,"tagA")) != 0 && (tagB= jstr(retjson,"tagB")) != 0 && strncmp(tagB,mp->rel.name,strlen(mp->rel.name)) == 0 && strlen(tagA) < sizeof(mp->base.name) )
627627
{
628-
snprintf(mp->base.name,strlen(tagA),"%s",tagA);
629-
snprintf(mp->base.coin,strlen(subatomic_checkname(tmpstr,mp,0,tagA)),"%s",subatomic_checkname(tmpstr,mp,0,tagA));
628+
snprintf(mp->base.name,strlen(tagA) + 1,"%s",tagA);
629+
snprintf(mp->base.coin,strlen(subatomic_checkname(tmpstr,mp,0,tagA)) + 1,"%s",subatomic_checkname(tmpstr,mp,0,tagA));
630630
if ( basecheck[0] == 0 || strncmp(basecheck,tagA,strlen(basecheck)) == 0 )
631631
matches = 1;
632632
else if ( strcmp(tagA,mp->base.name) == 0 )
@@ -636,10 +636,10 @@ uint64_t subatomic_orderbook_mpset(struct msginfo *mp,char *basecheck)
636636
if ( matches != 0 )
637637
{
638638
if ( (str= jstr(retjson,"decrypted")) != 0 && strlen(str) < 128 )
639-
snprintf(mp->payload,strlen(str),"%s",str);
639+
snprintf(mp->payload,strlen(str) + 1,"%s",str);
640640
mp->locktime = juint(retjson,"timestamp") + SUBATOMIC_LOCKTIME;
641641
mp->base.txfee = subatomic_txfee(mp->base.coin);
642-
snprintf(mp->senderpub,strlen(senderpub),"%s",senderpub);
642+
snprintf(mp->senderpub,strlen(senderpub) + 1,"%s",senderpub);
643643
volB = jdouble(retjson,"amountB");
644644
volA = jdouble(retjson,"amountA");
645645
mp->base.maxamount = volA*SATOSHIDEN + 0.0000000049999;
@@ -922,24 +922,24 @@ uint32_t subatomic_alice_openrequest(struct msginfo *origmp)
922922
mp->origid = origmp->origid;
923923
mp->rel.satoshis = origmp->rel.satoshis;
924924
mp->rel.istoken = origmp->rel.istoken;
925-
snprintf(mp->rel.tokenid,strlen(origmp->rel.tokenid),"%s",origmp->rel.tokenid);
926-
snprintf(mp->rel.name,strlen(origmp->rel.name),"%s",origmp->rel.name);
927-
snprintf(mp->rel.coin,strlen(subatomic_checkname(tmpstr,mp,1,origmp->rel.name)),"%s",subatomic_checkname(tmpstr,mp,1,origmp->rel.name));
928-
snprintf(mp->alice.pubkey,strlen(DPOW_pubkeystr),"%s",DPOW_pubkeystr);
929-
snprintf(mp->alice.secp,strlen(DPOW_secpkeystr),"%s",DPOW_secpkeystr);
930-
snprintf(mp->alice.recvZaddr,strlen(DPOW_recvZaddr),"%s",DPOW_recvZaddr);
931-
snprintf(mp->alice.recvaddr,strlen(DPOW_recvaddr),"%s",DPOW_recvaddr);
925+
snprintf(mp->rel.tokenid,strlen(origmp->rel.tokenid) + 1,"%s",origmp->rel.tokenid);
926+
snprintf(mp->rel.name,strlen(origmp->rel.name) + 1,"%s",origmp->rel.name);
927+
snprintf(mp->rel.coin,strlen(subatomic_checkname(tmpstr,mp,1,origmp->rel.name)) + 1,"%s",subatomic_checkname(tmpstr,mp,1,origmp->rel.name));
928+
snprintf(mp->alice.pubkey,strlen(DPOW_pubkeystr) + 1,"%s",DPOW_pubkeystr);
929+
snprintf(mp->alice.secp,strlen(DPOW_secpkeystr) + 1,"%s",DPOW_secpkeystr);
930+
snprintf(mp->alice.recvZaddr,strlen(DPOW_recvZaddr) + 1,"%s",DPOW_recvZaddr);
931+
snprintf(mp->alice.recvaddr,strlen(DPOW_recvaddr) + 1,"%s",DPOW_recvaddr);
932932
printf("rel.%s/%s %s openrequest %u status.%d (%s/%s)\n",mp->rel.name,mp->rel.coin,mp->rel.tokenid,mp->origid,mp->status,mp->alice.recvaddr,mp->alice.recvZaddr);
933933
if ( mp->status == 0 && subatomic_orderbook_mpset(mp,"") != 0 )
934934
{
935-
snprintf(mp->bob.pubkey,strlen(mp->senderpub),"%s",mp->senderpub);
935+
snprintf(mp->bob.pubkey,strlen(mp->senderpub) + 1,"%s",mp->senderpub);
936936
if ( subatomic_zonly(&mp->base) != 0 || subatomic_zonly(&mp->rel) != 0 )
937937
mp->OTCmode = 1;
938938
else mp->OTCmode = SUBATOMIC_OTCDEFAULT;
939-
snprintf(origmp->base.name,strlen(mp->base.name),"%s",mp->base.name);
940-
snprintf(origmp->base.coin,strlen(mp->base.coin),"%s",mp->base.coin);
939+
snprintf(origmp->base.name,strlen(mp->base.name) + 1,"%s",mp->base.name);
940+
snprintf(origmp->base.coin,strlen(mp->base.coin) + 1,"%s",mp->base.coin);
941941
origmp->base.istoken = mp->base.istoken;
942-
snprintf(origmp->base.tokenid,strlen(mp->base.tokenid),"%s",mp->base.tokenid);
942+
snprintf(origmp->base.tokenid,strlen(mp->base.tokenid) + 1,"%s",mp->base.tokenid);
943943
origmp->OTCmode = mp->OTCmode;
944944
if ( mp->rel.istoken != 0 && ((mp->rel.satoshis % SATOSHIDEN) != 0 || mp->rel.iszaddr != 0) )
945945
{
@@ -972,23 +972,23 @@ void subatomic_bob_gotopenrequest(uint32_t inboxid,char *senderpub,cJSON *msgjso
972972
struct msginfo *mp; cJSON *approval; int32_t origid; char *addr,tmpstr[32],*coin,*acname="";
973973
origid = juint(msgjson,"origid");
974974
mp = subatomic_tracker(origid);
975-
snprintf(mp->base.name,strlen(basename),"%s",basename);
976-
snprintf(mp->base.coin,strlen(subatomic_checkname(tmpstr,mp,0,basename)),"%s",subatomic_checkname(tmpstr,mp,0,basename));
977-
snprintf(mp->rel.name,strlen(relname),"%s",relname);
978-
snprintf(mp->rel.coin,strlen(subatomic_checkname(tmpstr,mp,1,relname)),"%s",subatomic_checkname(tmpstr,mp,1,relname));
975+
snprintf(mp->base.name,strlen(basename) + 1,"%s",basename);
976+
snprintf(mp->base.coin,strlen(subatomic_checkname(tmpstr,mp,0,basename)) + 1,"%s",subatomic_checkname(tmpstr,mp,0,basename));
977+
snprintf(mp->rel.name,strlen(relname) + 1,"%s",relname);
978+
snprintf(mp->rel.coin,strlen(subatomic_checkname(tmpstr,mp,1,relname)) + 1,"%s",subatomic_checkname(tmpstr,mp,1,relname));
979979
mp->origid = origid;
980980
mp->rel.satoshis = j64bits(msgjson,"relsatoshis");
981981
mp->bobflag = 1;
982-
snprintf(mp->bob.pubkey,strlen(DPOW_pubkeystr),"%s",DPOW_pubkeystr);
983-
snprintf(mp->bob.secp,strlen(DPOW_secpkeystr),"%s",DPOW_secpkeystr);
984-
snprintf(mp->bob.recvZaddr,strlen(DPOW_recvZaddr),"%s",DPOW_recvZaddr);
985-
snprintf(mp->bob.recvaddr,strlen(DPOW_recvaddr),"%s",DPOW_recvaddr);
982+
snprintf(mp->bob.pubkey,strlen(DPOW_pubkeystr) + 1,"%s",DPOW_pubkeystr);
983+
snprintf(mp->bob.secp,strlen(DPOW_secpkeystr) + 1,"%s",DPOW_secpkeystr);
984+
snprintf(mp->bob.recvZaddr,strlen(DPOW_recvZaddr) + 1,"%s",DPOW_recvZaddr);
985+
snprintf(mp->bob.recvaddr,strlen(DPOW_recvaddr) + 1,"%s",DPOW_recvaddr);
986986
if ( (addr= jstr(msgjson,"aliceaddr")) != 0 )
987-
snprintf(mp->alice.recvaddr,strlen(addr),"%s",addr);
987+
snprintf(mp->alice.recvaddr,strlen(addr) + 1,"%s",addr);
988988
if ( (addr= jstr(msgjson,"aliceZaddr")) != 0 )
989-
snprintf(mp->alice.recvZaddr,strlen(addr),"%s",addr);
989+
snprintf(mp->alice.recvZaddr,strlen(addr) + 1,"%s",addr);
990990
if ( (addr= jstr(msgjson,"alicesecp")) != 0 )
991-
snprintf(mp->alice.secp,strlen(addr),"%s",addr);
991+
snprintf(mp->alice.secp,strlen(addr) + 1,"%s",addr);
992992
if ( subatomic_zonly(&mp->base) != 0 || subatomic_zonly(&mp->rel) != 0 )
993993
mp->OTCmode = 1;
994994
else mp->OTCmode = SUBATOMIC_OTCDEFAULT;
@@ -1030,11 +1030,11 @@ int32_t subatomic_channelapproved(uint32_t inboxid,char *senderpub,cJSON *msgjso
10301030
if ( mp->bobflag == 0 && mp->status == SUBATOMIC_OPENREQUEST )
10311031
{
10321032
if ( (addr= jstr(msgjson,"bobaddr")) != 0 )
1033-
snprintf(mp->bob.recvaddr,strlen(addr),"%s",addr);
1033+
snprintf(mp->bob.recvaddr,strlen(addr) + 1,"%s",addr);
10341034
if ( (addr= jstr(msgjson,"bobZaddr")) != 0 )
1035-
snprintf(mp->bob.recvZaddr,strlen(addr),"%s",addr);
1035+
snprintf(mp->bob.recvZaddr,strlen(addr) + 1,"%s",addr);
10361036
if ( (addr= jstr(msgjson,"bobsecp")) != 0 )
1037-
snprintf(mp->bob.secp,strlen(addr),"%s",addr);
1037+
snprintf(mp->bob.secp,strlen(addr) + 1,"%s",addr);
10381038
retval = subatomic_approved(mp,approval,msgjson,senderpub);
10391039
}
10401040
else if ( mp->bobflag != 0 && mp->status == SUBATOMIC_APPROVED )
@@ -1356,8 +1356,8 @@ int32_t main(int32_t argc,char **argv)
13561356
}
13571357
}
13581358
hashstr = (char *)argv[3];
1359-
snprintf(M.rel.coin,strlen(subatomic_checkname(tmpstr,&M,1,coin)),"%s",subatomic_checkname(tmpstr,&M,1,coin));
1360-
snprintf(M.rel.name,strlen(coin),"%s",coin);
1359+
snprintf(M.rel.coin,strlen(subatomic_checkname(tmpstr,&M,1,coin)) + 1,"%s",subatomic_checkname(tmpstr,&M,1,coin));
1360+
snprintf(M.rel.name,strlen(coin) + 1,"%s",coin);
13611361
if ( argc == 4 && strlen(hashstr) == 64 ) // for blocknotify usage, seems not needed
13621362
{
13631363
height = get_coinheight(coin,acname,&blockhash);
@@ -1422,8 +1422,8 @@ int32_t main(int32_t argc,char **argv)
14221422
else
14231423
{
14241424
M.bobflag = 1;
1425-
snprintf(M.base.name,strlen(hashstr),"%s",hashstr);
1426-
snprintf(M.base.coin,strlen(subatomic_checkname(tmpstr,&M,0,hashstr)),"%s",subatomic_checkname(tmpstr,&M,0,hashstr));
1425+
snprintf(M.base.name,strlen(hashstr) + 1,"%s",hashstr);
1426+
snprintf(M.base.coin,strlen(subatomic_checkname(tmpstr,&M,0,hashstr)) + 1,"%s",subatomic_checkname(tmpstr,&M,0,hashstr));
14271427
subatomic_loop(&M); // while ( 1 ) loop for each relcoin -> basecoin
14281428
}
14291429
}

0 commit comments

Comments
 (0)