Fixed crash and memory leak in parse_literal_data.

Added "break" in RsInit::InitRetroShare.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-OpenPGP@5225 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2012-06-16 09:40:59 +00:00
parent bc9fa8ff3e
commit af19809ef7
2 changed files with 14 additions and 12 deletions

View File

@ -671,8 +671,9 @@ int RsInit::InitRetroShare(int argcIgnored, char **argvIgnored, bool strictCheck
{
std::cerr << " * Preferred * " << std::endl;
userId = it->sslId;
userName = it->pgpName;
userName = it->pgpName;
existingUser = true;
break;
}
}
if (!existingUser)
@ -2079,7 +2080,7 @@ int RsServer::StartupRetroShare()
/****** New Ft Server **** !!! */
ftserver = new ftServer(mPeerMgr, mLinkMgr);
ftserver->setP3Interface(pqih);
ftserver->setP3Interface(pqih);
ftserver->setConfigDirectory(RsInitConfig::configDir);
ftserver->SetupFtServer(&(getNotify()));

View File

@ -2107,21 +2107,22 @@ static int parse_literal_data(ops_region_t *region,ops_parse_info_t *pinfo)
while(region->length_read < region->length)
{
unsigned l=region->length-region->length_read;
unsigned l=region->length-region->length_read;
if(C.literal_data_body.data != NULL)
free(C.literal_data_body.data) ;
C.literal_data_body.data = (unsigned char *)malloc(l) ;
C.literal_data_body.data = (unsigned char *)malloc(l) ;
if(!limited_read(C.literal_data_body.data,l,region,pinfo))
{
free(C.literal_data_body.data);
return 0;
}
if(!limited_read(C.literal_data_body.data,l,region,pinfo))
return 0;
C.literal_data_body.length=l;
C.literal_data_body.length=l;
ops_parse_hash_data(pinfo,C.literal_data_body.data,l);
ops_parse_hash_data(pinfo,C.literal_data_body.data,l);
CBP(pinfo,OPS_PTAG_CT_LITERAL_DATA_BODY,&content);
CBP(pinfo,OPS_PTAG_CT_LITERAL_DATA_BODY,&content);
free(C.literal_data_body.data);
}
return 1;