Buffer overflow fixes, speedup in proxy

This commit is contained in:
Erik Zandvliet 2013-02-05 16:08:43 +01:00 committed by Thulinma
parent 00fd6e5f04
commit bc3356337e
2 changed files with 6 additions and 7 deletions

View file

@ -287,7 +287,6 @@ namespace Connector_HTTP {
H.SetHeader("X-UID", uid); H.SetHeader("X-UID", uid);
H.SetHeader("Server", "mistserver/" PACKAGE_VERSION "/" + Util::Config::libver); H.SetHeader("Server", "mistserver/" PACKAGE_VERSION "/" + Util::Config::libver);
conn->SendNow(H.BuildResponse("200", "OK")); conn->SendNow(H.BuildResponse("200", "OK"));
conn->flush();
}else{ }else{
//unknown length //unknown length
H.SetHeader("X-UID", uid); H.SetHeader("X-UID", uid);

View file

@ -321,7 +321,7 @@ namespace Connector_HTTP {
} }
WritePesHeader = true; WritePesHeader = true;
while (ToPack.size()){ while (ToPack.size()){
if ((PacketNumber % 42) == 0){ if (PacketNumber == 0){
PackData.DefaultPAT(); PackData.DefaultPAT();
TSBuf.write(PackData.ToString(), 188); TSBuf.write(PackData.ToString(), 188);
PackData.DefaultPMT(); PackData.DefaultPMT();
@ -340,12 +340,12 @@ namespace Connector_HTTP {
}else{ }else{
PackData.AdaptationField(1); PackData.AdaptationField(1);
} }
PackData.AddStuffing(184 - (20 + ToPack.size())); PackData.AddStuffing(PackData.BytesFree( ) - (25 + ToPack.size()));
PackData.PESVideoLeadIn(ToPack.size(), Strm.getPacket(0)["time"].asInt() * 90); PackData.PESVideoLeadIn(ToPack.size(), Strm.getPacket(0)["time"].asInt() * 90);
WritePesHeader = false; WritePesHeader = false;
}else{ }else{
PackData.AdaptationField(1); PackData.AdaptationField(1);
PackData.AddStuffing(184 - (ToPack.size())); PackData.AddStuffing(PackData.BytesFree( ) - (ToPack.size()));
} }
PackData.FillFree(ToPack); PackData.FillFree(ToPack);
TSBuf.write(PackData.ToString(), 188); TSBuf.write(PackData.ToString(), 188);
@ -357,7 +357,7 @@ namespace Connector_HTTP {
ToPack = TS::GetAudioHeader(DTMIData.size(), Strm.metadata["audio"]["init"].asString()); ToPack = TS::GetAudioHeader(DTMIData.size(), Strm.metadata["audio"]["init"].asString());
ToPack += DTMIData; ToPack += DTMIData;
while (ToPack.size()){ while (ToPack.size()){
if ((PacketNumber % 42) == 0){ if (PacketNumber == 0){
PackData.DefaultPAT(); PackData.DefaultPAT();
TSBuf.write(PackData.ToString(), 188); TSBuf.write(PackData.ToString(), 188);
PackData.DefaultPMT(); PackData.DefaultPMT();
@ -370,12 +370,12 @@ namespace Connector_HTTP {
AudioCounter++; AudioCounter++;
if (WritePesHeader){ if (WritePesHeader){
PackData.UnitStart(1); PackData.UnitStart(1);
PackData.AddStuffing(184 - (14 + ToPack.size())); PackData.AddStuffing(PackData.BytesFree( ) - (14 + ToPack.size()));
PackData.PESAudioLeadIn(ToPack.size(), Strm.getPacket(0)["time"].asInt() * 90); PackData.PESAudioLeadIn(ToPack.size(), Strm.getPacket(0)["time"].asInt() * 90);
WritePesHeader = false; WritePesHeader = false;
}else{ }else{
PackData.AdaptationField(1); PackData.AdaptationField(1);
PackData.AddStuffing(184 - ToPack.size()); PackData.AddStuffing(PackData.BytesFree( ) - ToPack.size());
} }
PackData.FillFree(ToPack); PackData.FillFree(ToPack);
TSBuf.write(PackData.ToString(), 188); TSBuf.write(PackData.ToString(), 188);