Bläddra i källkod

Sicherheitslücke geschlossen

Kolja Strohm 6 år sedan
förälder
incheckning
a38e133fa3
2 ändrade filer med 8 tillägg och 8 borttagningar
  1. 4 4
      KartenServer/KartenServer.cpp
  2. 4 4
      KartenServer/Updater.cpp

+ 4 - 4
KartenServer/KartenServer.cpp

@@ -361,14 +361,14 @@ void KSAKlient::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 )

+ 4 - 4
KartenServer/Updater.cpp

@@ -74,8 +74,8 @@ void Updater::thread()
                     k->getNachrichtEncrypted( (char*)&anz, 4 );
                     for( int i = 0; i < anz && !beenden; i++ )
                     {
-                        char len = 0;
-                        k->getNachrichtEncrypted( &len, 1 );
+                        unsigned char len = 0;
+                        k->getNachrichtEncrypted( (char*)&len, 1 );
                         if( !len )
                             continue;
                         char *pfa = new char[ len + 1 ];
@@ -129,8 +129,8 @@ void Updater::thread()
             if( ret == 3 )
             {
                 ks->karteUpdateEnde();
-                char byte = 0;
-                k->getNachrichtEncrypted( &byte, 1 );
+                unsigned char byte = 0;
+                k->getNachrichtEncrypted( (char*)&byte, 1 );
                 char *f = new char[ byte + 1 ];
                 f[ (int)byte ] = 0;
                 k->getNachrichtEncrypted( f, byte );