X-Git-Url: https://git.deb.at/?p=pkg%2Fnetris.git;a=blobdiff_plain;f=inet.c;h=068cb8915cf1249a64a0dc3540b88b09e6ae4ce0;hp=dbfe7484f0d8b9bb2a65f956ce9afc7e9d979bb5;hb=ec844657fccb6475314c51da1ae21dc2fee9a470;hpb=89d91b6cfd98e514b3e418526ba854d00beb876c diff --git a/inet.c b/inet.c index dbfe748..068cb89 100644 --- a/inet.c +++ b/inet.c @@ -42,6 +42,8 @@ static int isServer, lostConn, gotEndConn; ExtFunc void InitNet(void) { + lostConn = 0; + gotEndConn = 0; AtExit(CloseNet); } @@ -151,6 +153,9 @@ static MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event) memcpy(data, netBuf, sizeof(data)); type = ntoh2(data[0]); size = ntoh2(data[1]); + if (size >= sizeof(netBuf)) + fatal("Received an invalid packet (too large), possibly an attempt\n" + " to exploit a vulnerability in versions before 0.52 !"); netBufGoal = size; if (netBufSize < netBufGoal) return E_none;