From bc3356337ec55e1cfe41aeb6b2d4a9c15c87f780 Mon Sep 17 00:00:00 2001 From: Erik Zandvliet Date: Tue, 5 Feb 2013 16:08:43 +0100 Subject: [PATCH] Buffer overflow fixes, speedup in proxy --- src/conn_http.cpp | 1 - src/conn_http_live.cpp | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/conn_http.cpp b/src/conn_http.cpp index 60741fce..3c7f9c76 100644 --- a/src/conn_http.cpp +++ b/src/conn_http.cpp @@ -287,7 +287,6 @@ namespace Connector_HTTP { H.SetHeader("X-UID", uid); H.SetHeader("Server", "mistserver/" PACKAGE_VERSION "/" + Util::Config::libver); conn->SendNow(H.BuildResponse("200", "OK")); - conn->flush(); }else{ //unknown length H.SetHeader("X-UID", uid); diff --git a/src/conn_http_live.cpp b/src/conn_http_live.cpp index 41388388..e8928136 100644 --- a/src/conn_http_live.cpp +++ b/src/conn_http_live.cpp @@ -321,7 +321,7 @@ namespace Connector_HTTP { } WritePesHeader = true; while (ToPack.size()){ - if ((PacketNumber % 42) == 0){ + if (PacketNumber == 0){ PackData.DefaultPAT(); TSBuf.write(PackData.ToString(), 188); PackData.DefaultPMT(); @@ -340,12 +340,12 @@ namespace Connector_HTTP { }else{ 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); WritePesHeader = false; }else{ PackData.AdaptationField(1); - PackData.AddStuffing(184 - (ToPack.size())); + PackData.AddStuffing(PackData.BytesFree( ) - (ToPack.size())); } PackData.FillFree(ToPack); TSBuf.write(PackData.ToString(), 188); @@ -357,7 +357,7 @@ namespace Connector_HTTP { ToPack = TS::GetAudioHeader(DTMIData.size(), Strm.metadata["audio"]["init"].asString()); ToPack += DTMIData; while (ToPack.size()){ - if ((PacketNumber % 42) == 0){ + if (PacketNumber == 0){ PackData.DefaultPAT(); TSBuf.write(PackData.ToString(), 188); PackData.DefaultPMT(); @@ -370,12 +370,12 @@ namespace Connector_HTTP { AudioCounter++; if (WritePesHeader){ 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); WritePesHeader = false; }else{ PackData.AdaptationField(1); - PackData.AddStuffing(184 - ToPack.size()); + PackData.AddStuffing(PackData.BytesFree( ) - ToPack.size()); } PackData.FillFree(ToPack); TSBuf.write(PackData.ToString(), 188);