mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-12-30 01:46:11 -05:00
Suppressed uninitialized memory read.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1066 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
532148c433
commit
24c841ffe3
@ -85,6 +85,8 @@ pqistreamer::pqistreamer(RsSerialiser *rss, std::string id, BinInterface *bio_in
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
failed_read_attempts = 0 ; // reset failed read, as no packet is still read.
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -440,13 +442,13 @@ int pqistreamer::handleoutgoing()
|
|||||||
// write packet.
|
// write packet.
|
||||||
len = getRsItemSize(pkt_wpending);
|
len = getRsItemSize(pkt_wpending);
|
||||||
|
|
||||||
out << "Sending Out Pkt of size " << len << " !";
|
// std::cout << "Sending Out Pkt of size " << len << " !" << std::endl ;
|
||||||
|
|
||||||
if (len != (ss = bio->senddata(pkt_wpending, len)))
|
if (len != (ss = bio->senddata(pkt_wpending, len)))
|
||||||
{
|
{
|
||||||
out << "Problems with Send Data! (only " << ss << " bytes sent" << ", total pkt size=" << len ;
|
out << "Problems with Send Data! (only " << ss << " bytes sent" << ", total pkt size=" << len ;
|
||||||
out << std::endl;
|
out << std::endl;
|
||||||
std::cerr << out.str() ;
|
// std::cerr << out.str() ;
|
||||||
pqioutput(PQL_DEBUG_BASIC, pqistreamerzone, out.str());
|
pqioutput(PQL_DEBUG_BASIC, pqistreamerzone, out.str());
|
||||||
|
|
||||||
outSentBytes(sentbytes);
|
outSentBytes(sentbytes);
|
||||||
@ -455,7 +457,7 @@ int pqistreamer::handleoutgoing()
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
out << " Success!" << ", sent " << len << " bytes" << std::endl;
|
// out << " Success!" << ", sent " << len << " bytes" << std::endl;
|
||||||
// std::cerr << out.str() ;
|
// std::cerr << out.str() ;
|
||||||
pqioutput(PQL_DEBUG_BASIC, pqistreamerzone, out.str());
|
pqioutput(PQL_DEBUG_BASIC, pqistreamerzone, out.str());
|
||||||
|
|
||||||
@ -669,7 +671,7 @@ int pqistreamer::handleincoming()
|
|||||||
int pqistreamer::handleincoming()
|
int pqistreamer::handleincoming()
|
||||||
{
|
{
|
||||||
int readbytes = 0;
|
int readbytes = 0;
|
||||||
static const int max_failed_read_attempts = 60 ;
|
static const int max_failed_read_attempts = 100 ;
|
||||||
|
|
||||||
{
|
{
|
||||||
std::ostringstream out;
|
std::ostringstream out;
|
||||||
@ -735,6 +737,7 @@ start_packet_read:
|
|||||||
|
|
||||||
readbytes += blen;
|
readbytes += blen;
|
||||||
reading_state = reading_state_packet_started ;
|
reading_state = reading_state_packet_started ;
|
||||||
|
failed_read_attempts = 0 ; // reset failed read, as the packet has been totally read.
|
||||||
}
|
}
|
||||||
continue_packet:
|
continue_packet:
|
||||||
{
|
{
|
||||||
@ -760,6 +763,11 @@ continue_packet:
|
|||||||
msgout << "\n";
|
msgout << "\n";
|
||||||
msgout << "(M:" << maxlen << " B:" << blen << " E:" << extralen << ")\n";
|
msgout << "(M:" << maxlen << " B:" << blen << " E:" << extralen << ")\n";
|
||||||
msgout << "\n";
|
msgout << "\n";
|
||||||
|
msgout << "block = "
|
||||||
|
<< (int)(((unsigned char*)block)[0]) << " "
|
||||||
|
<< (int)(((unsigned char*)block)[1]) << " "
|
||||||
|
<< (int)(((unsigned char*)block)[2]) << " "
|
||||||
|
<< (int)(((unsigned char*)block)[3]) << "\n" ;
|
||||||
msgout << "\n";
|
msgout << "\n";
|
||||||
msgout << "Please get your friends to upgrade to the latest version";
|
msgout << "Please get your friends to upgrade to the latest version";
|
||||||
msgout << "\n";
|
msgout << "\n";
|
||||||
@ -785,7 +793,13 @@ continue_packet:
|
|||||||
void *extradata = (void *) (((char *) block) + blen);
|
void *extradata = (void *) (((char *) block) + blen);
|
||||||
int tmplen ;
|
int tmplen ;
|
||||||
|
|
||||||
|
memset( extradata,0,extralen ) ; // for checking later
|
||||||
|
|
||||||
if (extralen != (tmplen = bio->readdata(extradata, extralen)))
|
if (extralen != (tmplen = bio->readdata(extradata, extralen)))
|
||||||
|
{
|
||||||
|
if(tmplen > 0)
|
||||||
|
std::cerr << "Incomplete packet read ! This is a real problem ;-)" << std::endl ;
|
||||||
|
|
||||||
if(++failed_read_attempts > max_failed_read_attempts)
|
if(++failed_read_attempts > max_failed_read_attempts)
|
||||||
{
|
{
|
||||||
std::ostringstream out;
|
std::ostringstream out;
|
||||||
@ -827,6 +841,7 @@ continue_packet:
|
|||||||
else
|
else
|
||||||
return 0 ; // this is just a SSL_WANT_READ error. Don't panic, we'll re-try the read soon.
|
return 0 ; // this is just a SSL_WANT_READ error. Don't panic, we'll re-try the read soon.
|
||||||
// we assume readdata() returned either -1 or the complete read size.
|
// we assume readdata() returned either -1 or the complete read size.
|
||||||
|
}
|
||||||
|
|
||||||
readbytes += extralen;
|
readbytes += extralen;
|
||||||
}
|
}
|
||||||
@ -852,6 +867,7 @@ continue_packet:
|
|||||||
pqioutput(PQL_ALERT, pqistreamerzone, "Failed to handle Packet!");
|
pqioutput(PQL_ALERT, pqistreamerzone, "Failed to handle Packet!");
|
||||||
|
|
||||||
reading_state = reading_state_initial ; // restart at state 1.
|
reading_state = reading_state_initial ; // restart at state 1.
|
||||||
|
failed_read_attempts = 0 ; // reset failed read, as the packet has been totally read.
|
||||||
}
|
}
|
||||||
|
|
||||||
if(maxin > readbytes && bio->moretoread())
|
if(maxin > readbytes && bio->moretoread())
|
||||||
|
Loading…
Reference in New Issue
Block a user