소스 검색

Sicherheitslücke geschlossen

Kolja Strohm 6 년 전
부모
커밋
e1d6324e14
2개의 변경된 파일10개의 추가작업 그리고 10개의 파일을 삭제
  1. 4 4
      HistorieServer/HistorieServer.cpp
  2. 6 6
      HistorieServer/SpielServerKlient.cpp

+ 4 - 4
HistorieServer/HistorieServer.cpp

@@ -341,14 +341,14 @@ void HSAKlient::thread()
 				if( 1 )
 				{
 					klient->sendeEncrypted( "\1", 1 );
-					char nLen = 0;
-					klient->getNachrichtEncrypted( &nLen, 1 );
+					unsigned char nLen = 0;
+					klient->getNachrichtEncrypted( (char*)&nLen, 1 );
 					char *n = new char[ nLen + 1 ];
 					n[ (int)nLen ] = 0;
 					if( nLen )
 						klient->getNachrichtEncrypted( n, nLen );
-					char pLen = 0;
-					klient->getNachrichtEncrypted( &pLen, 1 );
+					unsigned char pLen = 0;
+					klient->getNachrichtEncrypted( (char*)&pLen, 1 );
 					char *p = new char[ pLen + 1 ];
 					p[ (int)pLen ] = 0;
 					if( pLen )

+ 6 - 6
HistorieServer/SpielServerKlient.cpp

@@ -55,12 +55,12 @@ bool SpielServerKlient::downloadSpielHistorie( short port, char *ip, int spiel,
 		return 0;
 	}
 	k->sendeEncrypted( "\xB", 1 );
-	char ret = 0;
-	k->getNachrichtEncrypted( &ret, 1 );
+	unsigned char ret = 0;
+	k->getNachrichtEncrypted( (char*)&ret, 1 );
 	if( ret == 1 )
 	{
 		k->sendeEncrypted( (char*)&spiel, 4 );
-		k->getNachrichtEncrypted( &ret, 1 );
+		k->getNachrichtEncrypted( (char*)&ret, 1 );
 		if( ret == 1 )
 		{
 			Text *pfad = new Text( gpf );
@@ -69,7 +69,7 @@ bool SpielServerKlient::downloadSpielHistorie( short port, char *ip, int spiel,
 				pfad->append( "/" );
 			pfad->append( spiel );
 			pfad->append( "/" );
-			k->getNachrichtEncrypted( &ret, 1 );
+			k->getNachrichtEncrypted( (char*)&ret, 1 );
 			while( ret )
 			{
 				char *pf = new char[ ret + 1 ];
@@ -93,7 +93,7 @@ bool SpielServerKlient::downloadSpielHistorie( short port, char *ip, int spiel,
 				d->close();
 				d->release();
 				delete[] pf;
-				k->getNachrichtEncrypted( &ret, 1 );
+				k->getNachrichtEncrypted( (char*)&ret, 1 );
 			}
 			pfad->release();
 		}
@@ -101,7 +101,7 @@ bool SpielServerKlient::downloadSpielHistorie( short port, char *ip, int spiel,
 	if( ret == 3 )
 	{
 		*fehler = "Fehler, Spielserver rückgabe: ";
-		k->getNachrichtEncrypted( &ret, 1 );
+		k->getNachrichtEncrypted( (char*)&ret, 1 );
 		char *err = new char[ ret + 1 ];
 		err[ (int)ret ] = 0;
 		k->getNachrichtEncrypted( err, ret );